TSlint:'let'和'const'触发禁止'var'关键字错误

问题描述:

我正在使用我的打字稿项目运行TSLint(v5.3.2)。我得到Forbidden'var'关键字,使用'let'或'const'代替但我没有使用'var',它指向我使用'let'或'const'。TSlint:'let'和'const'触发禁止'var'关键字错误

例如,这里是错误的代码帧格式,以显示我使用“常量”,而不是“变种”:

Forbidden 'var' keyword, use 'let' or 'const' instead (no-var-keyword) 
    58 |   .map((response) => { 
    59 |   // update the login status 
> 60 |   const tokensValid = response['isvalid'] === true; 
    |    ^
    61 |   if (tokensValid) { 
    62 |    this.loggedIn$.next(true); 
    63 |    return true; 

到目前为止,我一直无法弄清楚为什么我米得到这个错误。有任何想法吗?

谢谢。

这似乎是TSlint本身的错误。我建议您在tslint.json配置中取消激活此规则并查看它是否有效。

{ 
    "rules": { 
     "no-var-keyword": true 
    } 
} 

如果它不起作用,它可能是您的IDE或某事的错误。希望这可以帮助你。

+0

将no-var-keyword规则设置为false会关闭检查,以便错误不再像预期的那样显示,但是当然不会执行检查。 – Brandon

+0

正如我所说,由于地图的原因,TSlint检查可能是错误的。我不知道你能做些什么解决方法才能使它工作。您可能需要直接使用TSlint在Github上打开一个问题。 –

刚刚遇到这个问题,webpacktslint-loaderawesome-typescript-loader。我解决它做这个(简体):

module: { rules: [ { test: /\.tsx?$/, enforce: 'pre', // this little bugger loader: 'tslint-loader', }, { test: /\.tsx?$/, use: ['awesome-typescript-loader'], }, ], },

可谓是纱1.1.0的问题。降级到纱线1.0.1,tslint再次开始通过。尚未确定导致问题的两个版本之间的确切变化。

+0

是的,这也解决了我的问题(不得不通过降级纱线安装重新添加tslint),谢谢@Brandon – Dmase05

+0

我认为这是https://github.com/palantir/tslint/issues/3251 - 它似乎纱1.1.0以某种方式导致tslint-loader作为加载程序运行时,它应该是一个预加载程序。 – seanf