2015-10-20 99 views
2

我是新來的TypeScript。我試圖在WebStorm中設置它的使用。 我在我的項目的根目錄中創建了一個tsconfig.json文件,並將內置的ts編譯器更改爲版本1.6.2。 仍然需要在每個ts文件中包含參考路徑。我希望在我定義了tsconfig.json文件後就不再需要這個了。tsconfig.json未被TypeScript編譯器使用?

我試圖找出問題並在WebStorm之外進行測試。問題依然存在。 這是我的設置: 我用「npm install -g typescript」安裝了TypeScript。 我創建的文件夾具有這樣的結構:

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

file2.ts使用其在file1.ts創建一類。

當我運行「TSC file2.ts」 src文件夾裏面,我得到一個:

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'. 

我已經把一切都在一個ZIP: https://www.dropbox.com/s/o4x52rddanhjqnr/tsconfig.zip?dl=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' />

+0

我使用//將參考放在評論中。它適用於參考,但我不想使用參考。 – mvermand

+0

如果我在沒有任何參數的情況下在源文件夾中發出tsc,我只是得到tsc的使用信息。沒有編譯。 – mvermand

+0

我下載了你的ZIP。那裏只有兩個斜槓。 – thoughtrepo

1

我不知道這是否會是有關你的工作,但你的拉鍊包含一個空tsconfig.json。 我用一些選項填充它,並且實際上能夠從命令行和編輯器進行編譯。

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

我希望這會把你帶到某個地方。

+0

buttrepo的評論解決了這個問題。 – mvermand

相關問題