如果您有一个键入对象的字段,并希望将其与基本类型进行比较,例如对1
或ABCD
说,那么这样做的正确方法是什么?
这是一个例子。
interface Model {
__typename: "floors";
value: number;
formattedValue?: string;
}
此比较为我提供了所需的答案,但是tslint说== should be ===
。
if (model.value == 1) {
return true;
}
这没有给我我想要的答案。即使value
为1,也不会返回true。
if (model.value === 1) {
return true;
}
如何在不冒犯tslint的情况下进行此比较?
我发现的唯一方法是:
if (Number(value) === 1) {
return true;
}
...但是创建一个仅用于比较的数字感觉是错误的。
答案 0 :(得分:1)
或者,告诉TSLint停止检查==
:https://palantir.github.io/tslint/usage/configuration/
// tslint.json
{
"rules": {
"triple-equals": false
}
}
https://palantir.github.io/tslint/rules/triple-equals/
原帖上的评论就在现场。尽管您在TypeScript中已经声明value
属性始终是number
s,但似乎无论您从哪里获取它们,都将它们传递为string
s。以下条件之一必须为真:
value: string
string
TypeScript只是开发时间提示的集合。它与运行时发生的情况无关。