Node.js 使Typescript节点模块协同工作

Node.js 使Typescript节点模块协同工作,node.js,typescript,Node.js,Typescript,是否有人设置了使用typescript的模块1引用另一个同样使用typescript的模块2,并且两者都使用tsd类型,如node.d.ts 只要我只需要模块2,我就可以编译和使用它们。但一旦我使用import,我就会陷入重复标识符的地狱,因为两个模块中的源文件都从明显不同的路径导入,例如node.d.ts类型。两个项目中的类都使用例如“streams”或“lodash”,因此都在键入中使用它们,并因此使用///引用语法。两个项目中的tsconfig都不包括打字 EDIT:使用TS 2.2,这一

是否有人设置了使用typescript的模块1引用另一个同样使用typescript的模块2,并且两者都使用tsd类型,如node.d.ts


只要我只需要模块2,我就可以编译和使用它们。但一旦我使用import,我就会陷入重复标识符的地狱,因为两个模块中的源文件都从明显不同的路径导入,例如node.d.ts类型。两个项目中的类都使用例如“streams”或“lodash”,因此都在键入中使用它们,并因此使用///引用语法。两个项目中的tsconfig都不包括打字

EDIT:使用TS 2.2,这一点变得更好了。见公认的答案

在typescript 1.8.x中,这似乎还不太可能。但他们似乎是通过网络来实现的


另外,通过使用VScode应该使用的jsconfig.json(请参阅),可以缓解这个问题。遗憾的是,我还没有让它工作。

自从提出这个问题以来,Typescript已经走了很长一段路,现在更容易了。您可以在
package.json
中链接适当的文件:

{
  "main": "library-commonjs.js",
  "module": "library-es6-module.js",
  "typings": "library-commonjs.d.ts"
}
main
由使用CommonJS和Node.js模块解析的包使用<代码>模块由支持ES6导入的软件包使用。而
typings
后面紧跟着Typescript(目前是Typescript 2.2),以解析包的类型定义

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

该项目包括更多的文档,以及如何从typescript项目导入代码