js中的typeof 与typescript typeof的区别
在 JavaScript 中,typeof
是一个运算符,用于返回一个值的数据类型。它可以返回下列字符串中的一个:
"undefined"
表示值未定义"boolean"
表示值是布尔值"number"
表示值是数值"bigint"
表示值是大整数"string"
表示值是字符串"symbol"
表示值是符号"function"
表示值是函数"object"
表示值是对象或null
需要注意的是,
typeof null
返回的是"object"
,这是一个历史遗留问题。
在 TypeScript 中,typeof
也是一个运算符,但是它可以用于类型判断。它返回一个类型字符串,表示一个值的类型。使用 typeof
运算符时,它返回的类型是 TypeScript 中的类型,而不是 JavaScript 中的类型。例如:
let x = 123;
let y: typeof x = 456; // y 的类型为 number,和 x 的类型相同
在这个示例中,typeof x
返回的是 number
类型,这个类型被用来定义变量 y
的类型。
另外需要注意的是,在 TypeScript 中,typeof
运算符还可以用于获取一个函数的参数类型、返回值类型等。例如:
function add(x: number, y: number) {
return x + y;
}
type AddFunc = typeof add; // AddFunc 类型为 (x: number, y: number) => number
在这个示例中,typeof add
返回的是 (x: number, y: number) => number
类型,这个类型被用来定义类型别名 AddFunc
。