使用lodash与typescript和jspm

时间:2017-01-06 10:00:29

标签: typescript lodash jspm

我可能做错了但我找不到什么,所以任何帮助都会非常感激。我正在使用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

有什么想法吗? :)

1 个答案:

答案 0 :(得分:0)

这不是一个真正的解决方案,但现在要避免使用Typescript编译器抱怨这就是我的工作

declare const _: any;

我想在完成方法签名

时删除该行

请注意,当我导入lodash

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