2017-08-02 100 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中没有添加规则 –