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

tslint Error - Shadowed name: 'err'

tslint 当前抛出以下错误

Shadowed name: 'err'

这是代码

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

有人知道解决此问题的最佳方法是什么以及错误甚至意味着什么吗?

您在外部和内部回调中使用了相同的变量 "err",tslint 阻止了这种情况。

如果你想使用相同的变量那么"no-shadowed-variable": false,否则按照下面的方式做。

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

此行将禁用您的错误,

// 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 禁用了这个错误案例,因为有时打字稿编译器无法正确理解您的代码:)

在错误行上方添加此评论--

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

此阴影名称 tslint 错误是由于名称 'err' 在您的回调函数中重复两次所致。您可以将任何人 'err' 更改为其他名称,这样应该可以。

示例:这应该有效

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

在同一范围内多次声明同一变量时,会出现此警告。

在这种情况下使用不同的变量名。