use*_*079 22 equality typescript
我知道一个单一的平等标志意味着分配; 双重意味着平等; 和三重意味着平等和相同的类型.
我不明白为什么打字稿linter会让我在这种情况下使用三重等号:
function gcf(a: number, b: number): number
{
return (b == 0) ? (a) : (gcf(b, a % b));
}
Run Code Online (Sandbox Code Playgroud)
TsLint:==应该是===
我知道0是一个数字,我也知道b是一个数字(否则我会得到一个编译错误).那么为什么我要在这种情况下使用三重等号?
bas*_*rat 22
类型无法使您免于由此引起的所有错误==.特别是因为undefined和null可以兼容所有类型.例如,以下是不正确的:
var foo:number = null;
if (foo == undefined) {
console.log('is undefined'); // actually null
}
Run Code Online (Sandbox Code Playgroud)
有关为何这些是平等的更多信息,请访问/sf/answers/25165661/
个人:我已禁用此规则,从未遇到任何问题.我不比较true/false/null/undefined,只是if他们.打字稿会阻止比较strings,numbers因此这不是我需要处理的错误.
使用三重等式运算符还可以节省您从外部文件(即TypeScript环境之外)调用结果Javascript的情况.纯粹的JS文件不是由tslint处理的,并且通过"要求"三重相等,tslint使得生成的Javascript文件更具弹性.
| 归档时间: |
|
| 查看次数: |
25266 次 |
| 最近记录: |