3

我是 TypeScript 的新手。我正在尝试在 WebStorm 中设置它的使用。我在项目的根目录中创建了一个 tsconfig.json 文件,并将内置的 ts 编译器更改为 1.6.2 版本。我仍然需要在每个 ts 文件中包含参考路径。我希望一旦我定义了 tsconfig.json 文件就不再需要它了。

我试图隔离问题并在 WebStorm 之外进行测试。问题依然存在。这是我的设置:我使用“npm install -g typescript”安装了 TypeScript。我创建了一个具有这种结构的文件夹:

test\
  tsconfig.json
  src\
     file1.ts
     file2.ts

file2.ts 使用在 file1.ts 中创建的类。

当我在 src 文件夹中运行“tsc file2.ts”时,我得到:

C:\data\tryout\tsconfig\src\file2.ts(11,20): error TS2095: Could not find symbol 'TodoCtrl'.

我需要做什么才能让编译器自动找到所有 ts 文件?

文件1.ts:

module todos {
    'use strict';

    export class TodoCtrl {
        constructor() { }

        onTodos() {
                console.log('ok');
        }
    }
}

文件2.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'.

我把所有东西都放在一个 zip 里: https ://www.dropbox.com/s/o4x52rddanhjqnr/tsconfig.zip?dl=0

4

2 回答 2

2

运行tsc src\file2.ts将仅用src\file2.ts作输入。

tsc在没有输入文件的目录下运行以供其使用tsconfig.json,并输入目录和子目录中的所有.ts文件。

至于为什么tsc src\file2.ts不行。您的参考缺少斜线。

// <reference path='file1.ts' />

应该:

/// <reference path='file1.ts' />

于 2015-10-20T18:23:03.310 回答
1

我不确定这是否与您的工作相关,但您的 zip 包含一个空的 tsconfig.json。我用一些选项填充它,实际上能够从命令行和编辑器编译。

{
    "compilerOptions": {
        "module": "commonjs",
        "target": "es5",
        "rootDir": ".",
        "outDir": ".",
        "sourceMap": false
    },
    "filesGlob": [
        "./src/*.ts"
    ]
}

我希望这会带你到某个地方。

于 2015-10-23T18:35:26.063 回答