typescript number以typeof形式返回字符串

mgdq6dx1  于 2023-03-09  发布在  TypeScript
关注(0)|答案(1)|浏览(145)

我创建了一个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

我在打字操场上试过这个,得到了同样的结果。

bxpogfeg

bxpogfeg1#

不要使用quantity as unknown as number,这只会在你知道代码是正确的并且可以工作,但是类型系统不允许这样做的时候,才有助于满足类型脚本编译器的要求。
typeof不是一个返回声明类型的typescript操作符,它是一个返回运行时值类型的javascript操作符,并且numericQuantity变量包含一个字符串。
如果你真的想写一个converts the string value to a number value的程序,而不是赋值numericQuantity = quantity而是Assert编译器“我比你更清楚,这实际上是一个数字”,那么写

const quantity = '10';
const numericQuantity = Number(quantity);

console.log(typeof quantity);  // string
console.log(typeof numericQuantity);  // number

相关问题