TS中readonly是干嘛的?

    public readonly state = {
        hasMore: true,
        loading: false,
        hasAddContent: false,
        rags: [],
    };

里的readonly是干什么的?

阅读 7.9k
1 个回答

readonly 标记的属性只能在声明时或类的构造函数中赋值。

之后将不可改(即只读属性),否则会抛出 TS2540 错误。

与 ES6 中的 const 很相似,但 readonly 只能用在类(TS 里也可以是接口)中的属性上,相当于一个只有 getter 没有 setter 的属性的语法糖。


可以类比 C# 中的 readonly(实际上 TS 的设计思路也来自于此,毕竟它们都是 Anders Hejlsberg 巨佬发明的语言),或是 Java 中的 final

推荐问题