我是TypeScript新手。我试图在WebStorm中设置它的使用。我已经创建了一个tsconfig。Json文件在我的项目的根,并更改了内置的编译器到1.6.2版本。我仍然需要在每个ts文件中包含引用路径。我希望一旦定义了tsconfig,就不再需要这个了。json文件。
我试图隔离这个问题,并在WebStorm之外进行测试。问题依然存在。这是我的设置:我用"npm install -g TypeScript"安装了TypeScript。我创建了一个结构如下的文件夹:
test
tsconfig.json
src
file1.ts
file2.ts
file2。ts使用在file1.ts中创建的Class。
当我运行"tsc file2. exe"在src文件夹中,我得到一个:
C:datatryouttsconfigsrcfile2.ts(11,20): error TS2095: Could not find symbol 'TodoCtrl'.
我需要做什么才能让编译器自动找到所有ts文件?
file1.ts:
module todos {
'use strict';
export class TodoCtrl {
constructor() { }
onTodos() {
console.log('ok');
}
}
}
file2.ts:
// does work with ///<reference path='file1.ts' />
module todos {
'use strict';
export class DoneCtrl {
constructor() { }
onDone() {
var test = new TodoCtrl();
}
}
}
结果:error TS2095: Could not find symbol 'TodoCtrl'.
我把所有的东西都放在一个拉链里:https://www.dropbox.com/s/o4x52rddanhjqnr/tsconfig.zip?dl=0
运行tsc srcfile2.ts
将只使用srcfile2.ts
作为输入。
在没有输入文件的目录下运行tsc
,使其使用tsconfig.json
,并输入该目录及其子目录下所有.ts
文件。
至于为什么tsc srcfile2.ts
不工作。你的参考资料缺少一个斜杠。
// <reference path='file1.ts' />
/// <reference path='file1.ts' />
我不确定这是否与您的工作相关,但您的zip包含一个空的tsconfig.json。我用一些选项填满了它,并且实际上能够从命令行和编辑器中进行编译。
{
"compilerOptions": {
"module": "commonjs",
"target": "es5",
"rootDir": ".",
"outDir": ".",
"sourceMap": false
},
"filesGlob": [
"./src/*.ts"
]
}