使Typescript节点模块协同工作

时间:2016-04-18 08:19:44

标签: node.js typescript

有没有人有设置工作,其中使用typescript的模块1引用另一个模块2也使用typescript并且都使用tsd类型,例如node.d.ts?

我编译和使用它们都没有问题,只要我只需要模块2.但是一旦我使用import,我就会进入重复的标识符地狱,因为两个模块中的源文件都导入了node.d.ts来自明显不同的路径。两个项目中的类都使用例如'streams'或'lodash',因此它们都在打字中使用它们,因此使用///引用语法。两个项目中的tsconfig都不包括打字。

2 个答案:

答案 0 :(得分:1)

自从被问到这个问题后,

Typescript已经走了很长的路,现在变得更加容易了。您可以在package.json中链接正确的文件:

{
  "main": "library-commonjs.js",
  "module": "library-es6-module.js",
  "typings": "library-commonjs.d.ts"
}
使用CommonJS和Node.js模块解析的软件包使用

main。支持ES6导入的包使用module。并且typings之后是Typescript(当前为Typescript 2.2),用于解析包的类型定义。

在努力解决这个问题之后,我花了一些时间创建了一个打字稿样板/启动项目,演示了如何正确地完成它:

<强> https://github.com/bitjson/typescript-starter

该项目包含更多文档,以及several examples如何从typescript项目中导入代码。

答案 1 :(得分:0)

编辑:使用TS 2.2,这已经变得更好了。请参阅接受的答案。

在typescript 1.8.x中似乎不太可能。但他们似乎通过https://github.com/Microsoft/TypeScript/issues/7156开展工作。

此外,通过使用VScode应该使用的jsconfig.json可以减轻这个问题(参见https://blogs.msdn.microsoft.com/vscode/2015/07/06/visual-studio-code-es6/)。可悲的是,我还没有让它工作。