92 votes

TypeScript - Différence entre importation ... et importation {...} (avec des accolades)

Venant de Java pour que TS, j'ai omis {...} autour de la importées de type.

import DiscriminatorMappingData from './DiscriminatorMappingData';

au lieu de

import {DiscriminatorMappingData} from './DiscriminatorMappingData';

Voir le Tapuscrit de stockage de classe comme une carte de valeur?.

J'ai lu la documentation et de ne pas comprendre beaucoup de choses. Je n'ai pris que lorsque j'ai seulement besoin d'un type à partir d'un fichier, je peux omettre l' {}.
Cependant, ce qui a provoqué des erreurs étranges, comme "nom Inconnu", ou de type inattendu incompatibilites.

Alors, quelle est la différence, tout simplement?

104voto

Michael Liu Points 15764

La différence entre vos deux import des déclarations est couvert dans le Tapuscrit de la spécification. De L'Article 11.3.2, Des Déclarations D'Importation:

Une déclaration d'importation de la forme

import d from "mod";

est exactement équivalente à la déclaration d'importation

import { default as d } from "mod";

Ainsi, vous serait omettre les accolades seulement lorsque vous importez quelque chose qui a été exporté dans l' default entité du module (avec un export default déclaration, dont il ne peut être un par module). Le nom que vous fournissez dans l' import déclaration devient un alias pour que l'importation de l'entité.

Lors de l'importation de rien d'autre, même si c'est juste une entité, vous devez fournir les accolades.

La valeur par Défaut des exportations section du fichier d'enregistrement manuel a quelques exemples.

5voto

dimitrisli Points 5203

C'est des importations en destructruring format. Essentiellement regroupement de toutes les entités que nous voulons être importés from un fichier de définition.

Si vous êtes familier avec d'autres langages de programmation que vous connaissez peut-être avec la déstructuration de la notion. En fait destructuring a été ajoutée sous la forme d' affectations dans le cadre de l' es6.

L'importation de soutien à la restructuration a été suggérée pour la première fois en caractères d'imprimerie dans cette Github billet , mais a donné regroupés sous ce billet qui a été suivi de toutes les es6 modules.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X