typescript object
时间: 2025-01-07 09:08:04 浏览: 4
### TypeScript 对象的使用及其属性
#### 定义简单对象
在 TypeScript 中,可以像 JavaScript 那样创建简单的对象字面量。然而,TypeScript 提供了静态类型检查功能,允许开发者提前定义对象结构。
```typescript
const user = {
name: "Alice",
age: 25,
};
```
为了确保 `user` 的字段不会被意外修改或误用,可以通过接口(Interfaces)来明确定义对象形状[^1]:
```typescript
interface User {
name: string;
age: number;
}
const user: User = {
name: "Bob",
age: 30,
};
```
#### 使用可选属性
有时并非所有的属性都是必需的。通过给属性名后面加上问号 (`?`) 来标记该属性为可选项。
```typescript
interface Address {
street?: string;
city: string;
}
const homeAddress: Address = {city: 'Beijing'};
console.log(homeAddress.street); // undefined
```
#### 只读属性
对于那些一旦初始化就不应该改变的数据成员,可以用 `readonly` 关键字修饰它们。
```typescript
class Book {
readonly title: string;
constructor(title: string) {
this.title = title;
}
}
let book = new Book('TypeScript Deep Dive');
// book.title = 'Another Title'; // Error, cannot assign to read only property
```
#### 映射类型
映射类型是一种高级特性,可以从已有类型转换成新类型。这有助于批量设置某些属性的行为模式。
```typescript
type PartialPerson = {
[P in keyof Person]?: Person[P];
};
function updatePerson(person: Person, updates: PartialPerson): Person {
return {...person, ...updates };
}
```
#### 断言赋值操作符 (!)
当确实知道某个变量已经被赋予了一个非空值时,可以利用断言赋值运算符(`!`)告诉编译器忽略潜在未初始化警告。
```typescript
class Library {
titles!: string[];
loadTitles(titles: string[]) {
this.titles = titles;
}
}
```
以上展示了如何在 TypeScript 中处理不同类型的对象以及其各种特性的应用方式。这些工具使得编写健壮且易于维护的应用程序变得更加容易。
阅读全文