我想在打字稿中的算术运算中使用布尔变量,但是编译器抱怨:“算术运算的右侧必须是'any','number'或枚举类型。” < / p>
class User {
hasFoo: boolean;
};
let user = new User();
let amount : number = BASE + FOO_FACTOR * user.hasFoo
我知道我可以将布尔类型转换为<any>
类型,并且可以正常工作:
let amount : number = BASE + FOO_FACTOR * <any>user.hasFoo
但这是最好的解决方案吗?
答案 0 :(得分:2)
TypeScript希望您在编译时强制执行类型。由于香草JavaScript内部内部类型较弱,因此您的代码可在运行时正常工作。
避免强制转换any
,而应将boolean
转换为实际的number
。
有多个选项,例如:
let number: number = user.hasFoo ? 1 : 0
或:
let number: number = Number(user.hasFoo)