JavaScript 语言中,typeof 运算符是一个一元运算符,返回一个字符串,代表操作数的类型。
注意,这时 typeof 的操作数是一个值。JavaScript 里面,typeof运算符只可能返回八种结果,而且都是字符串。
TypeScript 将typeof运算符移植到了类型运算,它的操作数依然是一个值,但是返回的不是字符串,而是该值的 TypeScript 类型。
区别:
1: JavaScript 的 typeof 遵守 JavaScript 规则,TypeScript 的 typeof 遵守 TypeScript 规则。它们的一个重要区别在于,编译后,前者会保留,后者会被全部删除。
2:由于编译时不会进行 JavaScript 的值运算,所以TypeScript 规定,typeof 的参数只能是标识符,不能是需要运算的表达式
eg: type T = typeof Date(); //报错
3:typeof命令的参数不能是类型
eg: type Age = number;
type MyAge = typeof Age; //报错