Что такое ~ (тильда) в этом импорте javascript?
В App.tsx, взятом из примера MVC файла fountain-webapp (http://fountainjs.io/), импорт содержит следующую строку:
import {IDispatch} from '~react-redux~redux';
Visual Studio 2017 подчеркивает эту строку ("не может найти модуль"), однако она работает в браузере. Я никогда не видел этот синтаксис раньше и не знаю, что он пытается сделать?
Там есть открытый билет, в котором упоминается: https://github.com/FountainJS/generator-fountain-react/issues/70
Ответы
Ответ 1
Это файл машинописного typings
и import
выглядит как typings
созданный с помощью typings
IMO.
Я не хорошо разбираюсь в машинописных typings
но typings
вероятно, использует этот формат ~
(тильда) для проверки зависимостей модулей в определенном пространстве имен.
По словам Блейка Эмбрея, в этой теме по типу github repo:
Это пространство имен для зависимостей.
Ответ 2
Тильда (~
), используемая совместно с webpack, означает, что поиск выполняется с помощью node_modules
для разрешения пути.
Другими словами, это предопределенный псевдоним, который разрешает node_modules
.
import { IDispatch } from '~react-redux~redux';
эквивалентно
import { IDispatch } from 'relative_path_to_node_modules/react-redux~redux';
EDIT: К сожалению, я не могу привести какую-либо документацию об этом, она основана на опыте, вы можете отредактировать этот пост с более точным описанием.
Теперь я также заметил часть ~redux
, поэтому вы можете проверить другой ответ, потому что я тоже озадачен.