tslint错误 - 阴影名称:'错误'

时间:2018-05-28 08:26:47

标签: node.js angular typescript lint tslint

tslint目前正在抛出以下错误

try something like this
$(document).ready(function(){
    // use localStorage.removeItem('show'); to unset an item
    var show = localStorage.getItem('show');
    if(show === 'true'){
        $('#MultiSelectDialog_List').show();
    }

    $("#btn").click(function(event){
        event.preventDefault();
        $('#MultiSelectDialog_List').show();
        localStorage.setItem('show', 'true');
    });
});

这是代码

Shadowed name: 'err'

任何人都知道解决这个问题的最佳方法是什么以及错误甚至意味着什么?

5 个答案:

答案 0 :(得分:6)

您正在使用相同的变量"错误"在外部和内部回调中,由tslint阻止。

如果你想使用相同的变量,那么" no-shadowed-variable":false,否则如下所示。

fs.readdir(fileUrl, (readDirError, files) => {
    fs.readFile(path.join(fileUrl, files[0]), function (readFileErr, data) {
            if (!err) {
                res.send(data);
            }
        });
    });

答案 1 :(得分:1)

此隐藏的名称tslint错误是由于在回调函数中两次重复使用名称“ err”。您可以将任何人“ err”更改为其他名称,这样就可以使用。

示例:这应该有效

fs.readdir(fileUrl, (error, files) => {
        fs.readFile(path.join(fileUrl, files[0]), function (err, data) {
            if (!err) {
                res.send(data);
            }
        });
    });

答案 2 :(得分:0)

在错误行上方添加此注释-

  
    

// tslint:disable-next-line:no-shadowed-variable

  

答案 3 :(得分:0)

在同一作用域中多次声明同一变量时,会发生此警告。

在这种情况下,请使用其他变量名称。

答案 4 :(得分:-1)

此行将禁用您的错误,

// tslint:disable: no-shadowed-variable

但是有两个err变量是不行的,您还可以将第二个err变量名称更改为其他名称

fs.readdir(fileUrl, (err, files) => {
  fs.readFile(path.join(fileUrl, files[0]), function (readFileErr, data) {        
    if (!readFileErr) {
            res.send(data);
        }
    });
});

我遇到这样的错误interfaces.ts:119:26 - Shadowed name: 'POST'

// tslint:disable: no-shadowed-variable
interface API {
   export namespace APINAME {
     export type POST {

     }
   }
   export namespace OTHERAPINAME {
     export type POST {

     }
   }
}

我已在// tslint:disable: no-shadowed-variable行中禁用了此错误情况,因为有时打字稿编译器无法正确理解您的代码:)