Что такое ~ (тильда) в этом импорте 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, поэтому вы можете проверить другой ответ, потому что я тоже озадачен.