如果你有一个类型对象的字段并希望将它与一个原语进行比较,比如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;
}
...但是为了进行比较而创建一个数字感觉不对。
或者,告诉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只是开发时提示的集合。它与运行时发生的事情无关。