你真的想学吗?
认真的!
让我们开始吧,
以下是需要注意的概念列表:
1.类型和类型注解
基本类型:了解string、number、boolean、any、void、undefined、null等之间的区别
类型注释:学习如何显式声明类型(例如,让age: number = 30;)。
类型推断:TypeScript 可以从上下文推断类型,但了解何时使用显式类型以及何时依赖推断非常重要。
联合类型:类型可以是多种类型的组合(例如,let value: string | number)。
文字类型:可以是特定值的类型(例如,让方向:'左' | '右';)。
2。接口和类型别名
-
接口:用于定义对象形状(例如,接口 User { name: string;age: number })。
-
类型别名:允许您创建自定义类型(例如,类型 ID = 字符串 | 数字;)。
-
接口和类型的区别:接口是可扩展的,而类型别名更灵活(可以定义基元、并集、交集等)。
3。泛型
-
泛型函数:可以处理多种类型的函数(例如,函数identity(arg: T): T { return arg; })。
-
泛型接口/类:将泛型应用于接口和类(例如,interface Box { value: T; })。
4。类型断言和转换
-
类型断言:告诉 TypeScript 你比它更了解该类型(例如,let value = someValue as string)。
-
非空断言:使用 !告诉 TypeScript 某个值不为 null 或未定义(例如,someVar!.doSomething())。
5。结构类型(鸭子类型)
在 TypeScript 中,类型是结构化的,这意味着类型是根据其属性而不是名称进行比较的。如果两个类型具有相同的结构,则它们被视为同一类型。
6。枚举
-
数字和字符串枚举:允许您定义一组命名常量(例如,枚举方向 { Up、Down、Left、Right })。
-
常量枚举:不需要反向映射时更有效的枚举形式(例如,常量枚举 Color { Red, Green, Blue })。
7。类型缩小
-
类型保护:使用 typeof、instanceof 或自定义类型谓词来缩小变量的类型范围。
-
可区分联合:将联合类型与公共属性(鉴别器)相结合以缩小类型范围(例如,type Circle = { kind: "circle"; radius: number };)。
8。高级类型
-
交叉类型:将多种类型合并为一种(例如,输入 AdminUser = User & Admin;)。
-
映射类型:允许您转换类型中的属性(例如, type ReadOnly = { readonly [P in keyof T]: T[P]; })。
Utility Types:简化常见类型转换的内置类型,例如 Partial、Pick、Omit、Record 等
9。模块和命名空间
-
ES 模块:TypeScript 支持 ES6 模块语法(例如导入/导出)。了解模块解析以及默认导出和命名导出之间的区别至关重要。
-
命名空间:TypeScript 也有自己的命名空间系统,但通常不鼓励现代代码库使用 ES 模块。
10。处理 JavaScript 库
-
DefinitelyTyped:了解如何为不提供自己类型的 JavaScript 库安装和使用类型定义(例如,通过 @types/lodash)。
-
声明第 3 方库的类型:了解在没有可用类型时如何为库或全局对象编写自定义类型声明(*.d.ts 文件)。
11。类和继承
-
TypeScript 类:与 JavaScript 类类似,但具有额外的类型检查。
-
访问修饰符:public、private、protected关键字控制类成员的可见性。
-
只读:将属性标记为只读(例如,只读 id: number)。
-
抽象类和方法:抽象类不能直接实例化,只能进行子类化。
12。异步/等待和 Promise
TypeScript 完全支持 async/await 和 Promises,但添加类型注释可以帮助避免 Promise 或 async function 等类型的问题。
13。装饰器
实验功能:装饰器是一种用于注释或修改类和类成员的特殊语法。在 Angular 等框架中很有用,但在 TypeScript 中仍处于实验阶段。
14。严格的类型检查选项
-
严格模式:启用更严格的类型检查选项(例如,strictNullChecks、noImplicitAny)。
-
tsconfig.json:了解如何使用此文件配置 TypeScript 以启用或禁用编译器选项。
15。 TypeScript 和 JavaScript 互操作性
-
使用 JavaScript 代码:TypeScript 与 JavaScript 完全兼容。您可以逐步将 TypeScript 引入到现有的 JavaScript 项目中,并且仍然从 TypeScript 调用 JavaScript,反之亦然。
-
JSDoc 注释:您可以在 JavaScript 中使用 JSDoc 风格的注释向 TypeScript 提供类型信息,这在混合 JS/TS 代码库中非常有用。
16。错误处理
TypeScript 有助于在编译时捕获常见错误,例如访问 null 或未定义的属性。了解如何在 TypeScript 中使用 try/catch 以及正确的类型注释非常重要。
17。 TypeScript 配置 (tsconfig.json)
-
编译器选项:了解如何配置编译器设置,包括模块解析、严格性设置和目标环境。
-
源映射:设置源映射以使在浏览器或 Node.js 中调试 TypeScript 变得更容易。
18。实用函数和类型
-
keyof、typeof、instanceof:了解这些实用运算符以及如何使用它们来提取和操作类型。
-
索引签名:允许您动态定义对象的键和值的类型(例如,[key: string]: any)。
19。条件类型
TypeScript 允许根据条件定义类型(例如 type IsString = T extends string ? true : false;)。
20。 TypeScript 版本控制和兼容性
-
新功能:保持更新新的 TypeScript 版本,因为它是一种快速发展的语言。模板文字类型、类型谓词和更严格的类型检查等新功能可以改进您的代码。
通过掌握这些 TypeScript 特定的概念,您将能够利用 TypeScript 的全部功能,包括其静态类型系统,与纯 JavaScript 相比,提高代码质量、可维护性和可扩展性。
想了解更多关于我的信息,只需在搜索引擎上写sallbro...
以上是从 Javascript 跳转到 Typscript 的概念应该被了解的详细内容。更多信息请关注PHP中文网其他相关文章!