TypeScript 如何做类型测试
在日常开发中,很多人写代码时会忽略“类型匹配”这件小事——比如想把用户输入的年龄(字符串,像“25”)直接当数字计算,结果不小心用了字符串拼接,明明代码能跑,却出现了“2510”这种错误结果。TypeScript 就是帮我们提前揪出这类问题的工具,而它的“类型测试”功能,就是其中最实用的一环。
什么是TypeScript的类型测试?
简单来说,类型测试就是TypeScript在你写代码的过程中,主动检查“变量用得对不对”的过程。它就像你帮朋友带外卖时,提前确认“朋友要的是微辣还是不辣”,而不是拿到手才发现买错了。

举个生活化的例子:假设你用TypeScript写了一个“计算奶茶总价”的函数,要求参数是数字类型的杯数,如果你不小心传了字符串“3杯”,类型测试就会直接报错,告诉你“不能把字符串当成数字用”,而不是等运行后才算出“总价是NaN(非数字)”的结果。
最常用的3种类型测试方法
TypeScript的类型测试不是凭空判断,而是靠你提前给变量定好“类型规则”,再用3种核心方式做检查,每一种都对应开发里的常见场景:
第一种是基础类型判断,对应简单数据的测试。比如你想确认用户输入的是不是纯数字,就用typeof测试。比如代码里写const age = "25"; if (typeof age === "number"),TypeScript就会在编译时检查这个条件是否合理——如果age原本被定义为字符串,这个判断就永远是false,编译器会给你提示,避免逻辑出错。
第二种是对象属性测试,对应复杂数据的检查。比如你要调用一个获取用户信息的接口,返回的对象里必须有“姓名”和“手机号”两个属性,你可以用类型测试验证:interface User { name: string; phone: string },然后定义变量const user: User = { name: "张三", phone: "138XXXX" },如果少写了“phone”,编译器会直接标出错误,就像你寄快递时漏写了收件人电话,快递员根本没法派送。
第三种是联合类型测试,对应可变数据的检查。比如一个变量可能是字符串也可能是数字,你要根据类型做不同处理:function printId(id: string | number) { if (typeof id === "string") { console.log("ID是字符串:" + id.toUpperCase()) } else { console.log("ID是数字:" + id.toFixed(2)) } },TypeScript会自动识别每个分支里的id类型,确保你用的方法对应正确类型——比如在字符串分支里,你用数字的toFixed方法,它会立刻报错,避免了类型混乱。
类型测试的小技巧:提前避免“踩坑”
很多开发者刚用TypeScript时,会觉得类型测试太“啰嗦”,但其实它能帮你省掉大量调试时间。比如写一个购物车计算函数,如果你没做类型测试,把商品单价(数字)和数量(字符串)相乘,结果会是字符串拼接,而类型测试会在你写代码时就提示“数量需要是数字”,你就能立刻修正,不用等上线后才发现结算金额不对。
另外要注意,TypeScript的类型测试是编译时检查,不是运行时的——它不会阻止你运行代码,只是提前把错误标出来,就像你出门前检查雨伞,不是阻止你出门,而是避免被雨淋。
其实TypeScript的类型测试,本质上是帮你给代码“加了一层保险”,把“可能出错的地方”提前堵住。不管是新手还是老开发者,用好这功能,都能让代码少出问题,维护起来更省心。