ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

void、unknown 与 never 特殊类型指南:TypeScript-New-Handbook 一网打尽

void、unknown 与 never 特殊类型指南:TypeScript-New-Handbook 一网打尽 void、unknown 与 never 特殊类型指南TypeScript-New-Handbook 一网打尽【免费下载链接】TypeScript-New-HandbookIncubation repository for the new TypeScript handbook 项目地址: https://gitcode.com/gh_mirrors/ty/TypeScript-New-Handbook在 TypeScript 的类型系统里有一批特殊类型总让新手摸不着头脑void、unknown和never。它们既不像string、number那样直观又会在日常编码中频繁出现——写函数返回值、解析 JSON、处理穷尽性检查时都会遇到。这份TypeScript 特殊类型指南将结合孵化中的官方新手册 TypeScript-New-Handbook 内容用最通俗的语言把这三个类型一次讲透帮你彻底告别类型报错看不懂、any 到处飞的窘境。为什么需要特殊类型先认识 any 的教训在聊三个主角之前必须先理解一个背景TypeScript 里的any类型虽然万能却会关闭类型检查让错误悄悄溜进代码。手册在 Everyday Types 中明确指出any值无法享受类型检查的好处应当尽量避免。正是为了替代滥用的anyTypeScript 才设计了unknown与never这样的安全特殊类型。TypeScript void 类型详解函数无返回值时用它void表示函数没有返回值。只要函数没有return语句或者return后面没有携带任何值TypeScript 就会自动推断其返回类型为voidfunction noop() { return; } // noop 的推断返回类型是 void它最常见的用法是作为回调函数的类型标注例如(a: string) void表示接收一个 string 参数、且不返回值的函数。手册在 More on Functions 中特别提醒如果你需要接收任意函数但不想调用它使用() void远比危险的全局Function类型更安全。void 与 undefined 的区别这里有一个高频考点在 JavaScript 中无返回值的函数会隐式返回undefined但 TypeScript 中的void并不等于undefined。二者是两种不同的类型千万别混用——这是手册在void小节里反复强调的要点。unknown 类型使用指南比 any 更安全的万能类型unknown同样可以表示任意值但它与any的关键区别在于你无法对unknown值做任何操作。手册给出了一个直观对比function f1(a: any) { a.b(); // ✅ 编译通过但危险 } function f2(a: unknown) { a.b(); // ❌ 报错object 类型上不存在属性 b }也就是说unknown强制你先收窄、再使用从源头堵住了类型事故。unknown 与 any 的核心区别对比维度anyunknown可执行任意操作✅ 可以❌ 必须先收窄类型安全性低关闭检查高强制检查适用场景尽量避免解析外部数据如JSON.parse一个经典场景是解析 JSON手册建议将safeParse的返回类型声明为unknown这样调用方就必须谨慎处理返回对象而不是拿到一个随便用的any。使用 unknown 的安全姿势拿到unknown值后正确的做法是通过类型收窄Narrowing逐步确认类型例如用typeof判断、用类型断言转换。收窄的完整方法论可以阅读手册的 Narrowing 章节那里讲解了typeof、in、判别联合等技巧配合本指南食用效果更佳。️never 类型完全解读表示永不返回与穷尽性检查never表示永远不会被观察到的值。它有两种典型出现场景场景一函数永不正常返回。比如函数内部必然抛异常或终止程序执行function fail(msg: string): never { throw new Error(msg); }场景二联合类型收窄到空。当 TypeScript 判断一个联合类型的所有分支都已被排除时剩余值的类型就是never。比如在switch或if/else的最终else分支中变量会自动收窄为never。never 的进阶玩法穷尽性检查利用never我们可以实现经典的穷尽性检查Exhaustiveness Checking给函数增加一个接收never参数的兜底分支如果未来有人往联合类型里新增成员却忘了处理TypeScript 会立刻报错提醒你。这个模式在状态机、消息处理等场景中非常实用相关思路同样收录在 Narrowing 的never章节中。三个特殊类型一表总结类型表示什么典型用途常见误区void函数无返回值回调函数、事件处理器标注误以为等于undefinedunknown任意值但需收窄后才能用安全解析 JSON、外部输入与any混为一谈never永不出现的值抛异常函数、穷尽性检查与void混淆void 是返回空never 是根本不返回如何从 TypeScript-New-Handbook 继续深度学习本指南的内容全部源自 TypeScript-New-Handbook 这一孵化中的 TypeScript 官方新手册其中void、unknown、never的完整论述位于 More on Functions 的Other Types to Know About小节unknown在类型断言中的应用见 Everyday Typesnever与穷尽性检查的进阶讲解见 Narrowing想深入理解类型之间的赋值规则可阅读 Assignability。把这些章节串起来读你就能构建起对 TypeScript 特殊类型的完整认知。 建议在日常编码中刻意练习用unknown替代any、用never做穷尽性检查、把无返回值函数明确标注为void。坚持三周你的类型水平会有质的飞跃【免费下载链接】TypeScript-New-HandbookIncubation repository for the new TypeScript handbook 项目地址: https://gitcode.com/gh_mirrors/ty/TypeScript-New-Handbook创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表