2017-08-02 77 views
1

在視覺代碼 並使用tslint也籤* .TS和檢測未聲明的變量* .js文件, 未聲明的變量不是在.js文件 檢測,因爲他們在.TS文件。tslint不* .js文件

有什麼想法?

正如你可以看到兩個文件都沒有檢測到控制檯:.js和.ts iterableGGG未在ts文件中聲明=>,它以紅色下劃線。但不是在js文件中。

注意:從lodash導入只是有一個模塊,所以ts文件中的變量不是全局的。

enter image description here

enter image description here

tslint.json

{ 
    "defaultSeverity": "error", 
    "extends": [ 
     "tslint:recommended" 
    ], 
    "jsRules": {}, 
    "rules": { 
     "no-any": false 
    }, 
    "rulesDirectory": [] 
} 

回答

0

我找到了解決方案。

在TS文件中,未聲明的變量iterableGGG由tsc NOT tslint檢測到,您可以觀察到,因爲在VC中,警告/錯誤彈出消息以[ts]而不是[tslint]開頭。當tslint檢測到某個規則名時(例如:「no-use-before-declare」) 您也可以在CLI中看到,直接執行命令tsc和tslint。你可以檢查這種類型的錯誤是由tsc提出的。

>tsc 
src/examplJS.js(3,19): error TS2552: Cannot find name 'iterableGGG'. Did you mean 'iterable' ? 
src/examplTS.js(5,19): error TS2304: Cannot find name 'iterableGGG'. 

所以要去TSC配置tsconfig.json,只需激活 「checkJs」 真和VC也會顯示JS代碼以及TS

「allowJs」 的錯誤:真實,/*允許編譯JavaScript文件。 */

「checkJs」:true,/ *報告.js文件中的錯誤。 */

0

我相信jsRules應該像下面的,如果我沒有記錯。

"jsRules": { 
    "no-use-before-declare": true 
} 
+1

我試過了,但這在JS中不起作用。現在隱含着許多規則,但奇怪的是,它在TS中沒有添加規則但在JS中沒有添加規則 –