- 类型推断(Type Inference)
 TypeScript 编译器会在编译过程中进行类型推断。这意味着在很多情况下,你不需要明确地为变量或表达式指定类型,TypeScript 会根据上下文自动推断出最合适的类型。
typescript
 let x = 10; // TypeScript 会自动推断 x 的类型为 number
 22. 严格模式(Strict Mode)
 在 TypeScript 中,你可以通过 tsconfig.json 配置文件启用严格模式。严格模式会启用更多的类型检查规则,帮助你在开发过程中捕获更多的潜在错误。
json
 {
 “compilerOptions”: {
 “strict”: true
 }
 }
 23. 泛型(Generics)
 泛型允许你创建可重用的组件,这些组件可以适应多种类型的数据。泛型在创建可重用的接口、函数和类时非常有用。
typescript
 function identity(arg: T): T {
 return arg;
 }
let output = identity(“myString”); // 输出 “myString”
 24. 枚举(Enumerations)
 枚举是一种特殊的数据类型,允许你为值定义一组有名字的常量。使用枚举可以使代码更清晰、更易于维护。
typescript
 enum Color {Red, Green, Blue}
 let c: Color = Color.Green;
 25. 类型保护(Type Guards)
 类型保护是一种特殊的表达式,它允许你缩小一个变量的类型范围。类型保护通常与联合类型一起使用,以在运行时确定一个变量的确切类型。
typescript
 function isFish(animal: Fish | Bird): animal is Fish {
 return (animal as Fish).swim !== undefined;
 }
 26. 混入(Mixins)
 混入是一种在多个类之间共享行为的方式。在 TypeScript 中,你可以使用混入来实现类似多重继承的功能。
-  声明合并(Declaration Merging) 
 TypeScript 允许你将两个或多个具有相同名称的声明合并成一个单独的声明。这在你需要扩展模块、接口、类或其他类型的定义时非常有用。
-  符号(Symbols) 
 TypeScript 支持 ES6 中的 Symbol 类型,这是一种原始数据类型,用于创建唯一的标识符。
-  模块解析(Module Resolution) 
 TypeScript 支持多种模块解析策略,如 Node.js 的 CommonJS、AMD 和 ES6 模块。你可以通过 tsconfig.json 配置文件中的 module 选项来指定要使用的模块系统。
-  性能优化 
 避免使用 any 类型:使用 any 类型会破坏 TypeScript 的类型检查优势,增加代码出错的可能性。尽可能使用明确的类型。
 合理使用接口和类型别名:通过接口和类型别名可以提高代码的可读性和可维护性,减少重复代码。
 使用 ES6 模块系统:ES6 模块系统可以帮助你更好地组织代码,提高代码的模块化程度。
 以上只是 TypeScript 的部分高级特性和学习笔记。要深入了解 TypeScript 的所有功能,建议阅读官方文档和相关的教程、书籍,并积极参与实际的项目开发