Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript lambda函数中警告中的阴影变量_Typescript_Tslint - Fatal编程技术网

Typescript lambda函数中警告中的阴影变量

Typescript lambda函数中警告中的阴影变量,typescript,tslint,Typescript,Tslint,我在一个Typescript项目中使用了tslint,我经常收到关于lamdba函数中阴影变量的警告 下面是一个例子: const page = this.currentDocument.pages.find(page => page.pageNumber === pageNumber); 这里的警告是关于页面变量的 我已经改变了这一点,因为我发现在这里重复使用页面变量名的方式不好,令人困惑,但我想知道这是否会造成错误,或者在这些情况下这只是一个风格/理解问题。我知道阴影变量在其他情况下

我在一个Typescript项目中使用了
tslint
,我经常收到关于lamdba函数中阴影变量的警告

下面是一个例子:

const page = this.currentDocument.pages.find(page => page.pageNumber === pageNumber);
这里的警告是关于
页面
变量的

我已经改变了这一点,因为我发现在这里重复使用页面变量名的方式不好,令人困惑,但我想知道这是否会造成错误,或者在这些情况下这只是一个风格/理解问题。我知道阴影变量在其他情况下经常会产生bug


有没有人举过一个例子来说明这里可能出现的问题

不完全是。隐藏变量导致错误的唯一方式是如果您不是有意隐藏该变量。一个非常做作的例子:

const factors = [ 1, 2, 3, 4 ]
const factor = 5
const factorsMultiplied = factors.map(factor => factor * factor) 
// [ 1, 4, 9, 16 ] but expected [ 5, 10, 15, 20 ]
只要确定不需要访问在闭包中隐藏的变量,就不会出现任何奇怪的行为

如果要在某些情况下禁用规则,可以执行以下操作:

/*tslint:disable:no-shadowed-variable*/
const page = this.currentDocument.pages.find(page => page.pageNumber === pageNumber);
/*tslint:enable:no-shadowed-variable*/
我知道这不是重复的,因为在重新声明现有常量变量时,它涉及影子变量,而不是在lambda函数中。