Typescript:在算術運算中使用布林類型
我想在 TypeScript 中將布林變量用於算術運算,但編譯器報錯:"算術運算的右側必須是類型 'any'、'number' 或枚舉類型。"
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
TypeScript 希望你在編譯時強制類型。你的程式碼在運行時能夠運作,是因為原生 JavaScript 的內部弱型別特性。
避免使用 any 轉型,而是將 boolean 轉換為實際的 number。
有多種選擇,例如:
let number: number = user.hasFoo ? 1 : 0
或:
let number: number = Number(user.hasFoo)
