TypeScript编译器没有使用tsconfig.json吗?

时间:2015-10-20 18:03:03

标签: reference typescript typescript1.6 tsconfig

我是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。

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

C:\data\tryout\tsconfig\src\file2.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

2 个答案:

答案 0 :(得分:1)

正在运行tsc src\file2.ts只会使用src\file2.ts作为输入。

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

至于为什么tsc src\file2.ts不起作用。您的参考文献缺少斜线。

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

应该是:

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

答案 1 :(得分:1)

我不确定这是否与您的工作相关,但您的zip包含空的tsconfig.json。 我填写了一些选项,实际上可以从命令行和编辑器进行编译。

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

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