MST

星途 面试题库

面试题:TypeScript中如何定义只读属性及在不可变数据结构中的应用

请阐述在TypeScript中如何定义一个只读属性,并且举例说明在简单的不可变数据结构(比如一个包含只读属性的对象)中是如何应用的,同时说明修改只读属性会产生什么结果。
18.7万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试

定义只读属性

在TypeScript中,通过在属性名前加上 readonly 关键字来定义只读属性。例如:

interface Point {
    readonly x: number;
    readonly y: number;
}

在不可变数据结构中的应用

const point: Point = { x: 10, y: 20 };
// 这里的point对象的x和y属性是只读的

修改只读属性的结果

如果尝试修改只读属性,TypeScript编译器会报错。例如:

point.x = 30; // 报错:无法分配到 "x" ,因为它是只读属性。

在运行时,严格模式下尝试修改只读属性会抛出 TypeError 异常,非严格模式下不会报错但修改操作不会生效。