必须在像这样的引用中使用相对路径似乎非常脆弱
/// <reference path="../../typings/react/react.d.ts" />
有没有办法让编译器传递一个全局路径来查找类型定义?
答案 0 :(得分:1)
根据https://github.com/Microsoft/TypeScript/issues/293#issuecomment-96853514:
不会实施我们认为这件事超出了我们的范围 通常认为编译器可以执行它所需要的功能而不需要任何功能 额外。理解TypeScript的外部构建系统可以提供 这个功能本身并提供更好的灵活性 可配置性。
答案 1 :(得分:1)
正如Martin Vseticka指出的那样,不可能给编译器一个include-path,但是没有必要在引用注释中引用声明文件。事实上,我认为这样做是一种反模式,因为这些导入的声明全局适用,这意味着你可以轻松地在你删除一个只有你的引用注释的源文件然后依赖的其他文件的情况下结束间接地对那些进口产品打破了。
相反,您可以将声明文件与代码的其余部分(即在命令行上或通过tsconfig.json)相同地传递给编译器,并且它们将与其余代码一样处理。因此,如果您运行tsc,您只需编写tsc my.ts typings/react/react.d.ts
,或者如果您使用tsconfig.json,只需将其添加到files
数组。