深圳惠州网站建设,电子商务网站建设期末,北京手机app开发,六安人事考试网官网TypeScript 基础类型详解
TypeScript 的类型系统是其核心优势#xff0c;它提供了比 JavaScript 更严格、更安全的类型检查。以下是 TypeScript 中最常用的基础类型#xff08;primitive types 和常用组合类型#xff09;#xff0c;全部基于 TypeScript 5.x 版本。
1. 基…TypeScript 基础类型详解TypeScript 的类型系统是其核心优势它提供了比 JavaScript 更严格、更安全的类型检查。以下是 TypeScript 中最常用的基础类型primitive types 和常用组合类型全部基于 TypeScript 5.x 版本。1. 基本原始类型Primitives类型描述示例代码说明boolean布尔值let isActive: boolean true;只有true和falsenumber数字包括整数、浮点数let age: number 30;let pi: number 3.14;支持NaN、Infinitybigint大整数ES2020let big: bigint 100n;末尾加nstring字符串let name: string Alice;let greeting: string Hi ${name};支持模板字符串undefined未定义let u: undefined undefined;严格模式下需注意null空值let n: null null;与undefined不同symbol唯一标识符let sym: symbol Symbol(id);常用于对象属性键2. any 类型万能类型letanything:any4;anythingstring;// 任意类型都可赋值anythingtrue;// 不会报错anything.bark();// 也不会报错但运行时可能出错注意any会关闭类型检查不推荐滥用。尽量使用unknown替代。3. unknown 类型更安全的 anyletunknownValue:unknown4;// unknownValue.toFixed(); // 错误必须先检查类型if(typeofunknownValuenumber){console.log(unknownValue.toFixed(2));// OK}unknown强制你进行类型检查或断言安全性远高于any。4. 数组类型Array两种写法等价letnumbers1:number[][1,2,3];// 推荐letnumbers2:Arraynumber[1,2,3];// 泛型写法只读数组letreadonlyArr:ReadonlyArraynumber[1,2,3];// readonlyArr.push(4); // 错误只读5. 元组类型Tuple固定长度、固定类型顺序的数组letperson:[string,number][Alice,30];// person[2] extra; // 错误长度固定// 可选元素TS 4.0letoptionalTuple:[string,number?][Bob];6. 对象类型Object推荐使用interface或type定义对象结构// 使用 interfaceinterfaceUser{name:string;age:number;isAdmin?:boolean;// 可选readonlyid:number;// 只读}letuser:User{name:Charlie,age:28,id:1};// 使用 type更灵活typePoint{x:number;y:number;};letp:Point{x:10,y:20};7. 联合类型Union Types一个值可以是多种类型之一letid:string|number123;idabc;// OKfunctionprintId(id:string|number){if(typeofidstring){console.log(id.toUpperCase());}else{console.log(id.toFixed(2));}}8. 字面量类型Literal Types限制值为具体字面量typeStatussuccess|error|loading;letstate:Statussuccess;// 只能是这三个值typeYesNotrue|false;typeZero0;9. 枚举Enums定义一组命名常量enumDirection{Up,// 默认 0Down,// 1Left,// 2Right// 3}letdir:DirectionDirection.Up;console.log(Direction[0]);// Up反向映射字符串枚举推荐enumColor{RedRED,GreenGREEN,BlueBLUE}10. void 类型表示函数无返回值functionlog(message:string):void{console.log(message);}11. never 类型表示永远不会正常返回functionthrowError(msg:string):never{thrownewError(msg);}functioninfiniteLoop():never{while(true){}}12. 内置实用类型Utility Types——常用基础工具类型作用示例PartialT所有属性变为可选PartialUserRequiredT所有属性变为必选RequiredUserReadonlyT所有属性变为只读ReadonlyUserPickT, K挑选部分属性PickUser, “name”OmitT, K排除部分属性OmitUser, idRecordK, T创建键值类型对象Recordstring, number小结常用类型速查场景推荐类型写法数字number字符串string布尔boolean数组T[]或ArrayT对象interface或type多种可能A固定值“success”无返回值函数void永远不返回never任意类型谨慎unknown推荐 any如果您想深入某个类型如泛型、交叉类型、类型守卫、条件类型等或者需要具体示例代码请告诉我