有没有人有设置工作,其中使用typescript的模块1引用另一个模块2也使用typescript并且都使用tsd类型,例如node.d.ts?
我编译和使用它们都没有问题,只要我只需要模块2.但是一旦我使用import,我就会进入重复的标识符地狱,因为两个模块中的源文件都导入了node.d.ts来自明显不同的路径。两个项目中的类都使用例如'streams'或'lodash',因此它们都在打字中使用它们,因此使用///引用语法。两个项目中的tsconfig都不包括打字。
答案 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/)。可悲的是,我还没有让它工作。