我可能做错了但我找不到什么,所以任何帮助都会非常感激。我正在使用typescript 2 + jspm。我想我使用 typeRoots 和类型(在类型名称中添加版本号)尝试了tsconfig中的所有可能性。我当前的配置如下,它不起作用,而我认为它应该......
的package.json
"jspm": {
"dependencies": {
"lodash": "npm:lodash@^4.17.4"
},
"devDependencies": {
"@types/lodash": "npm:@types/lodash@^4.14.45",
"babel": "npm:babel-core@^5.8.24",
"babel-runtime": "npm:babel-runtime@^5.8.24",
"core-js": "npm:core-js@^1.1.4",
"systemjs": "npm:systemjs@^0.19.41"
}
}
tsconfig.json
"typeRoots": [
"jspm_packages/npm/@types"
]
然后编译器不理解
import * as _ from "lodash"
我得到了
Cannot find module 'lodash'.
根据打字稿文档https://www.typescriptlang.org/docs/handbook/declaration-files/consumption.html
的建议现在,如果我删除导入,,有趣的是,如果我编写以下代码行,vcode可以找到合并方法定义(F12)
_.merge(a, b);
但编译器仍然抱怨
Identifier '_' must be imported from a module
有什么想法吗? :)
答案 0 :(得分:0)
这不是一个真正的解决方案,但现在要避免使用Typescript编译器抱怨这就是我的工作
declare const _: any;
我想在完成方法签名
时删除该行请注意,当我导入lodash
时 System.import('lodash').then((lodash) => {
window._ = lodash;
});