2017-01-06 1 views
0

Je suis peut-être en train de faire quelque chose de mal, mais je ne trouve pas ce que toute aide serait grandement appréciée. J'utilise tapuscrit 2 + jspm. Je pense que j'ai essayé toutes les possibilités à l'intérieur du tsconfig en utilisant typeRoots et les types (en ajoutant le numéro de version dans le nom du type). Ma configuration actuelle est la suivante et il ne fonctionne pas alors que je pense qu'il devrait ...Utilisation de lodash avec typescript et jspm

package.json

"jspm": { 
    "dependencies": { 
     "lodash": "npm:[email protected]^4.17.4" 
    }, 
    "devDependencies": { 
     "@types/lodash": "npm:@types/[email protected]^4.14.45", 
     "babel": "npm:[email protected]^5.8.24", 
     "babel-runtime": "npm:[email protected]^5.8.24", 
     "core-js": "npm:[email protected]^1.1.4", 
     "systemjs": "npm:[email protected]^0.19.41" 
    } 
    } 

tsconfig.json

"typeRoots": [ 
    "jspm_packages/npm/@types" 
] 

Ensuite compilateur ne ne comprend pas

import * as _ from "lodash" 

Je reçois

Cannot find module 'lodash'. 

comme suggéré par le tapuscrit doc https://www.typescriptlang.org/docs/handbook/declaration-files/consumption.html

Maintenant, si -je supprimer l'importation, le plus drôle est que Vcode est capable d'aller chercher la définition de la méthode de fusion (F12) si Je vous écris la ligne de code suivante

_.merge(a, b); 

mais compilateur se plaint toujours que

Identifier '_' must be imported from a module 

Une idée? :)

+0

Vous pouvez importer d'autres modules sans problème ou est-ce simplement lodash qui pose problème? –

+0

J'utilise d'autres modules sans pb –

Répondre

0

Ce n'est pas vraiment une solution, mais pour l'instant pour éviter le compilateur dactylographiée se plaindre c'est ce que je fais

declare const _: any; 

J'enlèverait juste cette ligne quand je veux l'achèvement des méthodes signature

Notez que lorsque j'importe un lodash

System.import('lodash').then((lodash) => { 
    window._ = lodash; 
});