首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
01 | 重塑“类型思维”
02 | 类型基础(1):强类型与弱类型
03 | 类型基础(2):动态类型与静态类型
04 | 编写你的第一个TypeScript程序
05 | 基本类型
06 | 枚举类型
07 | 接口(1):对象类型接口
08 | 接口(2):函数类型接口
09 | 函数相关知识点梳理
10 | 类(1):继承和成员修饰符
11 | 类(2):抽象类与多态
12 | 类与接口的关系
13 | 泛型(1):泛型函数与泛型接口
14 | 泛型(2):泛型类与泛型约束
15 | 类型检查机制(1):类型推断
16 | 类型检查机制(2):类型兼容性
17 | 类型检查机制(3):类型保护
18 | 高级类型(1):交叉类型与联合类型
19 | 高级类型(2):索引类型
20 | 高级类型(3):映射类型
21 | 高级类型(4):条件类型
22 | ES6与CommonJS的模块系统
23 | 使用命名空间
24 | 理解声明合并
25 | 如何编写声明文件
26 | 配置tsconfig.json(1):文件选项
27 | 配置tsconfig.json(2):编译选项
28 | 配置tsconfig.json(3):工程引用
29 | 编译工具:从ts-loader到Babel
30 | 代码检查工具:从TSLint到ESLint
31 | 使用Jest进行单元测试
32 | 创建项目
33 | 组件与类型(1):函数组件与类组件
34 | 组件与类型(2):高阶组件与Hooks
35 | 事件处理与数据请求
36 | 列表渲染与路由
37 | Redux与类型
38 | 搭建服务端开发环境
39 | 列表的CRUD
40 | 导出Excel
41 | 搭建Vue开发环境
42 | 组件封装
43 | 组件发布
44 | 共存策略
45 | 宽松策略
46 | 严格策略
当前位置:
首页>>
技术小册>>
TypeScript开发实战
小册名称:TypeScript开发实战
### 05 | 基本类型 在TypeScript的世界里,基本类型构成了编程语言的基石,它们是构建更复杂数据结构和算法的基础。TypeScript作为JavaScript的一个超集,不仅继承了JavaScript的所有基本类型,还通过类型注解增强了这些类型的表达能力,使得代码更加健壮、易于理解和维护。本章将深入解析TypeScript中的基本类型,包括数字、字符串、布尔值、数组、元组、枚举、任意类型(Any)、空值(Void)、Null 和 Undefined、Never、Unknown以及对象字面量类型。 #### 5.1 数字(Number) TypeScript中的数字类型与JavaScript相同,支持整数和浮点数。数字类型用于表示数学中的数值,包括正数、负数、小数和特殊值如`Infinity`、`-Infinity`和`NaN`(Not-a-Number)。在TypeScript中,你可以直接使用数字字面量,或者使用类型注解来明确指定变量的数字类型。 ```typescript let age: number = 30; let pi: number = 3.14; let negative: number = -10; let infinity: number = Infinity; ``` #### 5.2 字符串(String) 字符串是文本数据的表示形式,TypeScript中的字符串类型与JavaScript相同,使用单引号(`'`)、双引号(`"`)或模板字符串(反引号\`\`)来定义。字符串类型支持多种内置方法,如`length`属性、`indexOf`、`substring`等,用于操作字符串数据。 ```typescript let name: string = "Alice"; let greeting: string = `Hello, ${name}!`; console.log(greeting.toUpperCase()); // 输出: HELLO, ALICE! ``` #### 5.3 布尔值(Boolean) 布尔值类型只有两个值:`true`和`false`。它们常用于控制程序流程,如条件语句和循环中。在TypeScript中,布尔值类型非常直接,适用于任何需要逻辑判断的场景。 ```typescript let isDone: boolean = false; if (isDone) { console.log("Task completed."); } else { console.log("Task not completed."); } ``` #### 5.4 数组(Array) 数组是一种线性数据结构,用于存储一系列相同类型的值。在TypeScript中,你可以通过两种方式定义数组:使用数组类型注解或在元素类型后添加`[]`。 ```typescript let numbers: number[] = [1, 2, 3, 4, 5]; // 或者使用泛型数组 let strings: Array<string> = ["Hello", "World"]; ``` TypeScript还提供了元组(Tuple)类型,它允许数组中包含不同类型的元素,但每个元素的类型在元组中是固定的。 ```typescript let person: [string, number, boolean] = ["Alice", 30, false]; ``` #### 5.5 枚举(Enum) 枚举类型是一种特殊的类,它允许你定义一个由一组命名的常量组成的集合。枚举中的每个成员都可以被赋予一个值(默认为递增的数字),或者你可以手动指定值。枚举使得代码更加清晰易读,特别是在处理一组固定的常量时。 ```typescript enum Color { Red, Green, Blue } let c: Color = Color.Green; ``` #### 5.6 任意类型(Any) `any`类型是一个特殊的类型,它允许你在编译时跳过类型检查。使用`any`类型,你可以将变量赋值为任意类型的值,这在类型系统无法提供足够信息或者需要兼容旧代码时非常有用。然而,过度使用`any`会削弱TypeScript提供的类型安全优势,因此应谨慎使用。 ```typescript let notSure: any = 4; notSure = "maybe a string instead"; notSure = false; // 没问题,但不推荐 ``` #### 5.7 空值(Void) `void`类型通常用于表示没有返回值的情况,比如函数不返回任何内容。当一个函数没有返回值时,它的返回类型就是`void`。 ```typescript function sayHello(): void { console.log("Hello, TypeScript!"); } ``` #### 5.8 Null 和 Undefined 在TypeScript中,`null`和`undefined`是两种不同的类型,分别用于表示空值或未定义的值。默认情况下,`null`和`undefined`是所有类型的子类型,这意味着你可以将`null`或`undefined`赋值给任何类型的变量。然而,这种宽松的行为可能会导致运行时错误,因此TypeScript提供了一个`--strictNullChecks`编译选项,它使得`null`和`undefined`不能自动赋值给非`null`/`undefined`类型的变量,从而增强了类型安全性。 #### 5.9 Never `never`类型是TypeScript中一个非常特殊的类型,它表示的是那些永不存在的值的类型。函数如果抛出异常、无限循环或者总是返回`never`类型(虽然这在实际编程中很少见),那么这个函数的返回类型就是`never`。`never`类型通常用于高级类型推断和错误处理中。 ```typescript function error(message: string): never { throw new Error(message); } // 函数没有返回值,但会抛出一个错误 ``` #### 5.10 Unknown `unknown`类型是一个顶级类型,它是所有类型的子类型(除了`any`和`never`)。当你不知道一个值的类型时,可以使用`unknown`类型来表示它。与`any`类型不同,你不能在不知道具体类型的情况下对`unknown`类型的值执行任何操作,这迫使你在使用之前进行显式的类型检查或断言。 ```typescript let value: unknown; // 需要类型断言或类型守卫才能使用 if (typeof value === "string") { console.log(value.toUpperCase()); // 现在我们知道它是string } ``` #### 5.11 对象字面量类型 对象字面量类型允许你指定一个对象可能包含哪些属性,以及这些属性的类型。对象字面量类型提供了一种灵活的方式来定义对象的结构,是TypeScript中常用的类型之一。 ```typescript let person: { name: string; age: number } = { name: "Bob", age: 25 }; ``` 此外,TypeScript还支持可选属性、只读属性、索引签名等高级特性,以更精确地描述对象的结构和行为。 --- 以上内容详细介绍了TypeScript中的基本类型,包括数字、字符串、布尔值、数组、元组、枚举、任意类型、空值、Null 和 Undefined、Never、Unknown以及对象字面量类型。这些类型构成了TypeScript类型系统的基石,理解和掌握它们对于编写安全、高效、易于维护的TypeScript代码至关重要。希望本章的内容能够帮助你更好地掌握TypeScript的基本类型,并在实际开发中灵活运用。
上一篇:
04 | 编写你的第一个TypeScript程序
下一篇:
06 | 枚举类型
该分类下的相关小册推荐:
TypeScript入门指南
剑指TypeScript
TypeScript 全面进阶指南