尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

TypeScript-New-Handbook 新手教程:10 分钟理解静态类型检查的核心理念

TypeScript-New-Handbook 新手教程:10 分钟理解静态类型检查的核心理念 TypeScript-New-Handbook 新手教程10 分钟理解静态类型检查的核心理念【免费下载链接】TypeScript-New-HandbookIncubation repository for the new TypeScript handbook 项目地址: https://gitcode.com/gh_mirrors/ty/TypeScript-New-Handbook想学 TypeScript 却总被各种术语劝退这份 TypeScript-New-Handbook 新手教程用 10 分钟帮你吃透静态类型检查的核心理念。TypeScript 是 JavaScript 的超集而它最核心的价值就是在代码运行之前帮你发现错误——这就是「静态类型检查」Static Type Checking。本文基于 TypeScript-New-Handbook 官方孵化仓库的章节内容用最通俗的方式带你入门全程几乎不需要写复杂代码。为什么需要静态类型检查先看一个报错先看一段普通 JavaScript 代码let foo Hello World!; foo.toLowerCase(); // 正常返回小写字符串 foo(); // 报错TypeError: foo is not a function第二行调用foo()会在运行时直接抛出异常。问题在于写代码的时候我们常常无法确定一个变量到底是什么类型。JavaScript 只有「动态类型」——只能运行起来看结果而 TypeScript 的静态类型检查则是在代码运行之前就预测哪些操作是合法的。这正是 TypeScript-New-Handbook 第一章 Basics.md 讲解的核心内容类型type描述了一个值具备哪些行为和能力静态类型系统则提前告诉你「这段代码可能出问题」。静态类型检查的三大核心能力1. 捕获运行时错误Runtime Errors把上面的代码改成 TypeScriptlet foo hello!; foo(); // TypeScript 直接报错此表达式不可调用还没运行代码TypeScript 编译器tsc就已经发现了问题帮你把 bug 扼杀在摇篮里。2. 捕获非异常错误Non-exception Failures更厉害的是TypeScript 连「不报错但逻辑错误」的情况也能查出来。比如访问对象上不存在的属性JavaScript 只会默默返回undefined而 TypeScript 会直接标红let foo { name: Daniel, age: 26 }; foo.location; // 错误属性 location 不存在此外拼写错误toLocaleLowercase、忘记调用函数Math.random忘了加括号、不可达的逻辑分支……这些新手最常见的坑TypeScript 都能一一识别。相关示例详见 Basics.md 的 Non-exception Failures 一节。3. 增强编辑器工具链Types for Tooling静态类型检查还带来一个隐藏福利强大的编辑器智能提示。因为类型检查器知道每个变量「是什么」编辑器就能在输入时自动补全属性、给出错误提示甚至提供一键修复Quick Fixes和跳转定义等功能。装上 TypeScript 后你的 VS Code 立刻「聪明」一倍。静态类型检查的三大关键机制机制一类型标注Type Annotations告诉 TypeScript 参数是什么类型只需在变量后加冒号function greet(person: string, date: Date) { console.log(Hello ${person}, today is ${date.toDateString()}!); } greet(Maddison, new Date()); // ✅ 正确如果你误传了错误类型比如用Date()而不是new Date()tsc立刻给出错误提示。更多类型示例可参考 Everyday Types.md。机制二类型推断Type Inference大多数情况下你甚至不需要写标注。TypeScript 会自动推断let foo hello there!; // TypeScript 自动推断 foo 是 string这就是「能推断就不标注」的最佳实践——代码更简洁类型安全却一点不少。机制三类型收窄NarrowingTypeScript 会跟随代码的控制流if/else、typeof 判断等自动「收窄」类型。比如function padLeft(padding: number | string, input: string) { if (typeof padding number) { return new Array(padding 1).join( ) input; // 此处 padding 一定是 number } return padding input; // 此处 padding 一定是 string }这种用typeof判断实现的「类型守卫」Type Guard让 TypeScript 代码看起来几乎和普通 JavaScript 一样自然。完整讲解在 Narrowing.md。静态类型检查如何工作tsc 编译流程了解了理念再看工具本身。TypeScript 编译器tsc的工作分三步类型检查扫描代码并报告错误但默认不阻止生成 JS 文件擦除类型编译时把所有类型标注删除——类型标注绝不会改变程序运行时的行为降级编译Downleveling把新版 ECMAScript 语法转换成旧版本比如把模板字符串转成字符串拼接保证老浏览器也能运行。用npm install -g typescript安装后执行tsc hello.ts就能体验完整流程。想更严格打开--strict开关重点掌握noImplicitAny和strictNullChecks两个标志见 Basics.md 的 Strictness 一节。新手最容易理解的三个实战案例案例 1捕获拼写错误someString.toLocaleLowercase(); // ❌ 错误方法不存在 someString.toLocaleLowerCase(); // ✅ 正确写法案例 2捕获未调用函数function flipCoin() { return Math.random 0.5; // ❌ 错误忘了加括号调用 }案例 3捕获多余参数greet(Brendan); // ❌ 错误Expected 2 arguments, but got 1这些例子都直接来自 Basics.md是不是立刻感受到了静态类型检查的「火眼金睛」如何快速开始三步上手克隆官方仓库git clone https://gitcode.com/gh_mirrors/ty/TypeScript-New-Handbook按顺序阅读章节建议从 intros/An Indroduction to TypeScript.md 开始再依次读 chapters 目录下的 Basics.md、Everyday Types.md、Narrowing.md动手实践复制示例代码到本地运行tsc亲眼看报错比读十遍都管用。总结10 分钟掌握静态类型检查回顾一下静态类型检查的核心理念其实只有四句话静态 在代码运行之前检查类型 基于「值的种类」判断对错目的 提前发现 bug、增强编辑器体验原则 类型标注不会改变运行时行为JavaScript 代码全部兼容。TypeScript-New-Handbook 这份新手教程最大的优点就是每个概念都从最日常的 JavaScript 代码出发循序渐进。按上面三步走完你不仅理解了静态类型检查还能看懂绝大多数 TypeScript 代码。现在就去 clone 仓库开始你的 10 分钟入门之旅吧【免费下载链接】TypeScript-New-HandbookIncubation repository for the new TypeScript handbook 项目地址: https://gitcode.com/gh_mirrors/ty/TypeScript-New-Handbook创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表