MST

星途 面试题库

面试题:TypeScript 实现接口时如何处理属性的可选性与只读性

请详细说明在TypeScript中,当实现一个接口时,对于接口中定义的可选属性和只读属性,应该遵循怎样的规则?并通过代码示例展示如何正确实现包含这两种属性的接口。
19.6万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试

可选属性规则

在TypeScript中,当实现一个包含可选属性的接口时,实现类或对象不一定要包含该可选属性。可选属性在接口定义时通过在属性名后加 ? 来表示。在实现时,如果提供该属性,其类型必须与接口中定义的类型一致。

只读属性规则

只读属性在接口定义时通过在属性名前加 readonly 来表示。一旦在对象或类中实现了只读属性,该属性的值在初始化后就不能再被修改。在实现时,属性类型必须与接口中定义的类型一致。

代码示例

// 定义一个接口,包含可选属性和只读属性
interface User {
    readonly id: number;
    name: string;
    age?: number;
}

// 实现接口
let user: User = {
    id: 1,
    name: 'John'
};

// 尝试修改只读属性会报错
// user.id = 2; // 报错: 无法分配到 "id" ,因为它是只读属性。

// 可以选择性地提供可选属性
user.age = 30;