web-dev-qa-db-fra.com

Que fait le ~ (tilde) dans cette importation javascript?

Dans App.tsx extrait de l'exemple fountain-webapp TypeScript MVC ( http://fountainjs.io/ ), l'importation contient la ligne suivante:

import {IDispatch} from '~react-redux~redux';

Visual Studio 2017 souligne cette ligne ("module introuvable") mais elle fonctionne dans le navigateur. Je n'ai jamais vu cette syntaxe auparavant et je ne sais pas ce qu'elle essaie de faire?

Il y a un ticket ouvert le mentionnant ici: https://github.com/FountainJS/generator-fountain-react/issues/7

22
Rich

Il s'agit d'un fichier TypeScript et le import ressemble à un module IMO généré par typings.

Je ne connais pas bien TypeScript mais typings probablement utilise ce ~ (tilde) format pour vérifier les dépendances de module dans un espace de noms particulier.

Selon Blake Embrey , dans ce fil sur le typage github repo:

C'est un espace de noms pour les dépendances.

4

Tilde (~) utilisé conjointement avec webpack signifie qu'une recherche est effectuée sur node_modules pour résoudre le chemin.

En d'autres termes, c'est un alias prédéfini qui se résout en node_modules.

import { IDispatch } from '~react-redux~redux';

est équivalent à

import { IDispatch } from 'relative_path_to_node_modules/react-redux~redux';

EDIT: Malheureusement, je ne peux pas citer de documentation à ce sujet, il est basé sur l'expérience, vous êtes invités à modifier ce post avec une description plus précise.

Maintenant, j'ai remarqué le ~redux également, donc vous voudrez peut-être consulter la autre réponse , car je suis aussi perplexe.

21
Lyubomir