Typeof 类型运算符
typeof 类型运算符
JavaScript 已经有一个 typeof 运算符,你可以在表达式上下文中使用它:
TypeScript 添加了一个 typeof 运算符,你可以在类型上下文中使用它来引用变量或属性的类型:
这对于基本类型来说并不是很有用,但与其他类型运算符结合使用时,你可以使用 typeof 方便地表达许多模式。 举个例子,让我们从预定义类型 ReturnType<T> 开始。 它接受一个函数类型并生成其返回类型:
如果我们尝试在函数名上使用 ReturnType,我们会看到一个说明性的错误:
请记住,值和类型不是一回事。 要引用值 f 所具有的类型,我们使用 typeof:
限制
TypeScript 有意限制了可以使用 typeof 的表达式的种类。
具体来说,仅允许在标识符(即变量名)或其属性上使用 typeof。 这有助于避免编写你认为会执行但实际上不会执行的代码所带来的困惑陷阱:
ts
// 本意是使用 = ReturnType<typeof msgbox>
let shouldContinue: typeof msgbox("Are you sure you want to continue?");Try