返回
TypeScript 对象类型:塑造数据结构的基础
前端
2023-10-30 10:07:10
TypeScript 官方手册翻译计划【五】:对象类型
在 JavaScript 中,最基础的分组和传递数据的方式就是使用对象。在 TypeScript 中,我们则通过对象类型来表示。
对象类型
对象类型用来对象的形状,它指定了对象中可以包含哪些属性以及这些属性的类型。我们可以使用花括号 {}
来定义对象类型,属性类型对之间使用分号 ;
分隔:
type Person = {
name: string;
age: number;
hobby: string;
};
在这个例子中,Person
类型定义了一个具有 name
(字符串)、age
(数字)和 hobby
(字符串)属性的对象。
可选属性
有时,对象可能包含可选的属性,即这些属性可以存在或不存在。我们可以使用问号 ?
来表示可选属性:
type User = {
name: string;
age?: number; // 可选属性
email: string;
};
只读属性
有些情况下,我们希望对象的某些属性在创建后不能被修改。我们可以使用 readonly
来声明只读属性:
type Product = {
readonly name: string;
price: number;
};
索引类型
索引类型允许我们指定对象索引的类型。例如,我们可以定义一个具有字符串键和数字值的映射类型:
type Dictionary<T> = {
[key: string]: T;
};
接口与类型别名
在 TypeScript 中,对象类型有两种形式:接口和类型别名。两者在功能上是等效的,但有微妙的差别。
接口 使用 interface
关键字声明,允许扩展和实现:
interface Animal {
name: string;
age: number;
}
类型别名 使用 type
关键字声明,不能被扩展或实现,但更易于重用:
type Human = {
name: string;
age: number;
};
实例化对象
一旦定义了对象类型,就可以使用它来实例化对象:
const person: Person = {
name: "John Doe",
age: 30,
hobby: "programming",
};
总结
对象类型是 TypeScript 中表示对象的强大工具。它们允许我们定义对象的形状,指定属性类型和行为,并提高代码的可读性和可维护性。通过理解和使用对象类型,我们可以有效地组织和处理数据,从而创建健壮且可扩展的 TypeScript 应用程序。