web-dev-qa-db-ja.com

tslintエラー-シャドウ名: '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);
            }
        });
    });

誰でもこれを解決する最良の方法は何か、エラーは何を意味するのかについての手がかりを持っていますか?

8
bobdolan

外側と内側の両方のコールバックで同じ変数「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

ただし、2つの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 TypeScriptコンパイラがコードを正しく理解できないことがあるためです:)

0
Nver Abgaryan

このコメントをエラー行のすぐ上に追加してください-

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

0
Ankit