我创建了一个numericQuantity
变量,它是一个强制转换的字符串quantity
,是否可以解释为什么记录typeof返回 string,即使变量具有**:number**类型?
let quantity: string = '10';
let numericQuantity: number = quantity as unknown as number;
console.log(typeof quantity); // string
console.log(typeof numericQuantity); //string
我在打字操场上试过这个,得到了同样的结果。
1条答案
按热度按时间bxpogfeg1#
不要使用
quantity as unknown as number
,这只会在你知道代码是正确的并且可以工作,但是类型系统不允许这样做的时候,才有助于满足类型脚本编译器的要求。typeof
不是一个返回声明类型的typescript操作符,它是一个返回运行时值类型的javascript操作符,并且numericQuantity
变量包含一个字符串。如果你真的想写一个converts the string value to a number value的程序,而不是赋值
numericQuantity = quantity
而是Assert编译器“我比你更清楚,这实际上是一个数字”,那么写