打字稿:在算术运算中使用布尔型

时间:2018-06-20 09:44:55

标签: typescript types

我想在打字稿中的算术运算中使用布尔变量,但是编译器抱怨:“算术运算的右侧必须是'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

但这是最好的解决方案吗?

1 个答案:

答案 0 :(得分:2)

TypeScript希望您在编译时强制执行类型。由于香草JavaScript内部内部类型较弱,因此您的代码可在运行时正常工作。

避免强制转换any,而应将boolean转换为实际的number

有多个选项,例如:

let number: number = user.hasFoo ? 1 : 0

或:

let number: number = Number(user.hasFoo)