2016-08-24 2 views
1

J'essaie d'utiliser typings pour charger un fichier de définition pour bowser. J'ai des typings installés et exécutés typings install dt~bowser -DG --save-dev pour l'installer localement. Cela fonctionne très bien. Cependant, je ne sais plus comment l'utiliser. Dans le passé, il a «juste fonctionné» - ce qui signifie que si j'essaie d'écrire quelque chose qui fait référence à Bowser dans TypeScript, il trouvera mon fichier de définition (téléchargé avec DefinitelyTyped) et reconnaîtra bowser comme une fonction globale. Maintenant, cependant, il semble que le fichier de définition a changé et il est maintenant un « module »:Comment utilisez-vous les typages TypeScript qui sont des modules?

declare module 'bowser' { 
    var def: BowserModule.IBowser; 
    export = def; 
} 

Comment dois-je utiliser dans mes fichiers tapuscrit? Bien sûr, je peux faire quelque chose comme ceci:

declare var bowser: BowserModule.IBowser; 

Mais cela se sent mal/aki. Qu'est-ce qui me manque ici, qu'est-ce qui a changé dans le monde des typings/DefinitelyTyped?

Répondre

1

The correct syntax would be

import bowser = require('bowser') 

Si vos typages sont correctement configurés, il devrait fonctionner. Sinon, vérifier si le fichier typings/index.d.ts est référencé dans votre script de compilation, et si bowser est correctement référencé là:

/// <reference path="globals/bowser/index.d.ts" /> 
+0

Merci pour l'aide, qui m'a obtenu plus loin. Cependant, il dit maintenant qu'il ne peut pas trouver les classes exportées régulières que j'ai définies dans mes propres fichiers .ts. J'ai été en mesure d'ajouter une autre déclaration 'import' pour le réparer - mais cela semble fou? Une fois que vous avez ajouté un 'import', est-ce que toutes les dépendances externes doivent être importées à partir de ce point? –

+0

Les lignes '///

+0

Bien que si vous me demandez, je pense que les instructions "import" ES6-standard devraient être utilisées si possible –