【问题标题】:Why is the 'readonly' property in typescript not working?为什么打字稿中的“只读”属性不起作用?
【发布时间】:2021-09-04 11:15:39
【问题描述】:
interface ReadExample {
    readonly book_id: number,
    book_name: string
}

class Book implements ReadExample{
    book_id= 3;
    book_name = 'A Thousand Stars';
    constructor(book_id:number, book_name:string){
        this.book_id = book_id;
        this.book_name = book_name;
    }

}
let book: Book = new Book(2, 'Sis');
console.log(book);
book.book_name = 'Sister';
book.book_id = 3;
console.log(book);

为什么这不会给我带来任何错误。您会看到属性 book_id 是只读的。那么为什么当我尝试分配 book.book_id = 3 时它不会在这里抛出错误?不违反只读吗?

【问题讨论】:

    标签: typescript interface readonly


    【解决方案1】:

    因为 Typescript 中的只读实际上并不是只读的。

    我不完全理解,但你可以在这个 Github 问题中找到关于它的讨论:https://github.com/microsoft/TypeScript/issues/13002

    作为一名程序员,我学习和成长的越多,我就越觉得那里有很多废话。 Readonly 很糟糕,它不会像您期望的那样“正常工作”。

    你能做的最好的事情就是不要做你正在做的事情。

    【讨论】:

    • 哈哈,是的。非常喜欢阅读那个 GitHub 问题中的 cmets。谢谢@BigBadBeny。 :)
    猜你喜欢
    • 1970-01-01
    • 2021-10-11
    • 1970-01-01
    • 1970-01-01
    • 2016-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多