【发布时间】:2014-06-11 12:53:54
【问题描述】:
如果我有两个打字稿文件,比如说 a.ts 和 b.ts a.ts 内容为:
export class A {
greet():void{
console.log("hi");
}
}
b.ts 内容为:
export class B {
constructor(){
var a:A=new A();
a.greet();
}
}
new B();
我想用https://github.com/Railk/T3S 和/或https://github.com/lavrton/sublime-better-typescript 编译这些文件
问题是如果我编译文件b.ts,无论我是否将a.ts添加到项目中,它都看不到文件a.ts。 所以,我写了一个 compile.bat 文件(我把它用作构建系统),它将文件收集到一个 txt 中,然后我使用这样的命令:
dir DIRECTORY\*.ts /b /s > DIRECTORY\ts-files.txt
tsc @DIRECTORY\ts-files.txt --outDir OUTPUT_DIRECTORY
效果很好(所有 js 文件都编译得很好),但是当我在编辑器中看到源代码时,它仍然无法识别其他文件中的引用。
所以,我有一个 buld 系统,效果很好。如果我使用 T3S,效果很好,但只有一个文件,没有任何外部参考。
我该如何解决这个问题?
【问题讨论】:
-
使用参考注释是否有助于解决您的问题 - 它告诉编译器在哪里查找依赖项:
///<reference path="a.ts" /> -
是的,可以解决这个问题。有趣的是,当我使用 webstorm 时,它不需要引用 cmets。
-
WebStorm 和 Visual Studio 都会自动扫描项目中的文件 - 这是一个额外的 IDE 功能,而不是直接的 TypeScript 编译器功能:)
-
啊,我明白了,我以为这是未知的魔法,谢谢!