TypeScript typeof 怎么用

TypeScript 是 JavaScript 的“加强版”,能帮我们提前发现代码里的小问题,而 typeof 是它常用的小工具,就像生活里的“分类标签”,能帮我们快速搞懂变量的类型。

先搞懂 `typeof` 的基础用法

你可以把它想象成家里的“物品分类器”:拿到一个东西,它能马上告诉你这是衣服、玩具还是书本。在代码里,typeof 也是干这个的——给它一个变量,它会输出这个变量的类型,比如数字、字符串这些。

TypeScript typeof 怎么用

举个生活例子:你手里拿着一个苹果,它是“水果”;拿着一个笔记本,它是“文具”。对应到代码里,如果你写 const age = 25,typeof age 就会返回 number(数字类型);如果写 const name = "小明",typeof name 就返回 string(字符串类型)。

平时写代码时,它能帮我们判断变量的类型,避免写错。比如你要做一个“计算商品总价”的功能,怕有人不小心把价格写成了文字,就可以用 typeof 检查一下:如果价格是数字,再算总价,不然就跳出提示“价格格式不对”。

进阶用法:给变量“定规矩”

TypeScript 比普通 JavaScript 更“严谨”,它可以用 typeof 给变量设置“类型约束”,就像给零食罐贴标签,只能放对应类型的零食,放错就报错。

假设你有一个函数,用来处理用户输入的“用户名”,要求只能是字符串。如果直接写 function showName(name) { ... },普通 JS 不会拦着用户输入数字或空值;但用 TypeScript 结合 typeof,可以写成 function showName(name: typeof name) { ... },相当于告诉代码:“这个变量的类型,就等于 name 本身的类型,只能是字符串”。

举个更实际的例子:你要写一个工具函数,用来打印变量的类型。可以这么写:

`typescript

function printType<T>(value: T) {

console.log(typeof value);

}

// 调用

printType(123); // 输出 number

printType("测试"); // 输出 string

`

这里的 typeof 就是把输入的变量类型“传递”给函数,不管你传的是啥,函数都会准确输出类型,不会出错。

注意:别和运行时的 `typeof` 搞混

有个小细节要提醒你:typeof 分两种,一种是写在代码里给 TypeScript 用的“类型层面的 typeof”,另一种是运行时 JS 自带的“值层面的 typeof”,两者看起来一样,但用处完全不同。

举个生活化的例子:类型层面的 typeof 就像“你对这个变量的要求”,而值层面的 typeof 就像“实际拿到这个变量后查它的属性”。比如你写 const a = [1,2,3],运行时用 typeof a 会返回 object,但类型层面如果用 typeof a,会告诉 TypeScript 这个变量是“数组类型”,能帮你检查后续代码会不会把它当成数字用。

举个代码例子:

`typescript

// 类型层面的 typeof(给 TypeScript 看的)

type Age = typeof age; // 相当于 number

// 运行时的 typeof(给浏览器看的)

console.log(typeof 25); // 输出 "number"

`

别把这两个搞混,不然会出现“代码逻辑对,但类型检查报错”的小问题。

总的来说,TypeScript 的 typeof 就像一个贴心的“类型小助手”,基础用法能帮你判断变量的类型,进阶用法能帮你规范代码的类型,只要分清楚它在类型层面和运行时的区别,就能轻松用好它,让你的代码更稳、更少出错。

上一篇 Java 泛型怎么用