news 2026/5/12 5:35:37

TypeScript 基础类型

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
TypeScript 基础类型

TypeScript 基础类型详解

TypeScript 的类型系统是其核心优势,它提供了比 JavaScript 更严格、更安全的类型检查。以下是 TypeScript 中最常用的基础类型(primitive types 和常用组合类型),全部基于 TypeScript 5.x 版本。

1. 基本原始类型(Primitives)
类型描述示例代码说明
boolean布尔值let isActive: boolean = true;只有truefalse
number数字(包括整数、浮点数)let age: number = 30;
let pi: number = 3.14;
支持NaNInfinity
bigint大整数(ES2020+)let big: bigint = 100n;末尾加n
string字符串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:any=4;anything="string";// 任意类型都可赋值anything=true;// 不会报错anything.bark();// 也不会报错(但运行时可能出错)

注意any会关闭类型检查,不推荐滥用。尽量使用unknown替代。

3. unknown 类型(更安全的 any)
letunknownValue:unknown=4;// unknownValue.toFixed(); // 错误:必须先检查类型if(typeofunknownValue==="number"){console.log(unknownValue.toFixed(2));// OK}

unknown强制你进行类型检查或断言,安全性远高于any

4. 数组类型(Array)

两种写法等价:

letnumbers1:number[]=[1,2,3];// 推荐letnumbers2:Array<number>=[1,2,3];// 泛型写法

只读数组:

letreadonlyArr:ReadonlyArray<number>=[1,2,3];// readonlyArr.push(4); // 错误:只读
5. 元组类型(Tuple)

固定长度、固定类型顺序的数组:

letperson:[string,number]=["Alice",30];// person[2] = "extra"; // 错误:长度固定// 可选元素(TS 4.0+)letoptionalTuple:[string,number?]=["Bob"];
6. 对象类型(Object)

推荐使用interfacetype定义对象结构:

// 使用 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|number=123;id="abc";// OKfunctionprintId(id:string|number){if(typeofid==="string"){console.log(id.toUpperCase());}else{console.log(id.toFixed(2));}}
8. 字面量类型(Literal Types)

限制值为具体字面量:

typeStatus="success"|"error"|"loading";letstate:Status="success";// 只能是这三个值typeYesNo=true|false;typeZero=0;
9. 枚举(Enums)

定义一组命名常量:

enumDirection{Up,// 默认 0Down,// 1Left,// 2Right// 3}letdir:Direction=Direction.Up;console.log(Direction[0]);// "Up"(反向映射)

字符串枚举(推荐):

enumColor{Red="RED",Green="GREEN",Blue="BLUE"}
10. void 类型

表示函数无返回值:

functionlog(message:string):void{console.log(message);}
11. never 类型

表示永远不会正常返回:

functionthrowError(msg:string):never{thrownewError(msg);}functioninfiniteLoop():never{while(true){}}
12. 内置实用类型(Utility Types)——常用基础工具
类型作用示例
Partial<T>所有属性变为可选Partial<User>
Required<T>所有属性变为必选Required<User>
Readonly<T>所有属性变为只读Readonly<User>
Pick<T, K>挑选部分属性`Pick<User, “name”
Omit<T, K>排除部分属性Omit<User, "id">
Record<K, T>创建键值类型对象Record<string, number>
小结:常用类型速查
场景推荐类型写法
数字number
字符串string
布尔boolean
数组T[]Array<T>
对象interfacetype
多种可能`A
固定值`“success”
无返回值函数void
永远不返回never
任意类型(谨慎)unknown(推荐) >any

如果您想深入某个类型(如泛型、交叉类型、类型守卫、条件类型等),或者需要具体示例代码,请告诉我!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/9 6:12:52

TypeScript 接口

TypeScript 中的接口&#xff08;Interface&#xff09;详解 接口&#xff08;interface&#xff09; 是 TypeScript 中最常用、最重要的类型定义方式之一&#xff0c;主要用于描述对象的形状&#xff08;shape&#xff09;&#xff0c;定义对象应该具有哪些属性、方法及其类型…

作者头像 李华
网站建设 2026/5/12 2:37:37

揭秘Open-AutoGLM可视化建模:如何3步完成企业级自动化流程搭建

第一章&#xff1a;Open-AutoGLM无代码流程设计概述Open-AutoGLM 是一款面向非技术用户与开发者的可视化流程自动化工具&#xff0c;基于大语言模型驱动的逻辑生成能力&#xff0c;实现无需编写代码即可构建复杂任务流程。通过拖拽式界面与自然语言指令解析&#xff0c;用户可快…

作者头像 李华
网站建设 2026/5/8 10:39:34

Open-AutoGLM指令调度黑科技:如何实现推理速度提升3倍以上?

第一章&#xff1a;Open-AutoGLM指令调度黑科技&#xff1a;实现推理加速的底层逻辑Open-AutoGLM 作为新一代开源大语言模型推理优化框架&#xff0c;其核心突破在于指令级动态调度机制。该机制通过重构计算图中的算子执行顺序&#xff0c;结合硬件感知的负载均衡策略&#xff…

作者头像 李华
网站建设 2026/5/1 13:21:51

Excalidraw Dropbox联动操作指南

Excalidraw 与 Dropbox 联动&#xff1a;打造轻量级可视化协作闭环 在分布式团队成为常态的今天&#xff0c;如何让一次头脑风暴的草图不随浏览器关闭而消失&#xff1f;怎样确保产品、开发、设计三方看到的是同一版架构图&#xff1f;这些问题背后&#xff0c;其实是对“轻量但…

作者头像 李华
网站建设 2026/5/11 12:38:33

Excalidraw OAuth2认证接入流程

Excalidraw OAuth2 认证接入流程 在现代远程协作日益成为常态的背景下&#xff0c;可视化工具早已不再是简单的绘图板&#xff0c;而是团队沟通、产品设计和系统架构讨论的核心载体。Excalidraw 以其独特的手绘风格和极简交互脱颖而出&#xff0c;被广泛用于绘制流程图、线框图…

作者头像 李华