TypeScript中readonly关键字的妙用

在TypeScript的世界里,readonly关键字是一个强大的工具,用于声明一个类属性为只读。这意味着一旦初始化后,这些属性就不能被重新赋值。这不仅提高了代码的安全性,还有助于维护数据的一致性。本文将通过一个简单的例子,详细探讨readonly的使用方式和它与const关键字的区别。

基础示例

首先,让我们通过一个Person类来演示readonly的用法:

class Person {
    private readonly _name: string;
        private readonly _age: number;
    constructor(name: string, age: number) {
            this._name = name;
                    this._age = age;
                        }
    get name(): string {
            return this._name;
                }
    get age(): number {
            return this._age;
                }
    displayAsString(): void {
            console.log(`Person { _name: '${this._name}', _age: ${this._age} }`);
                }
                }
let person = new Person("Ashalee", 28);
person.displayAsString();

上述代码中,_name_age属性都被标记为readonly。这意味着它们只能在构造函数中被赋值,之后就不能被修改了。尝试在displayAsString方法中修改this._age的值将会导致编译错误。

输出结果
Person { _name: 'Ashalee', _age: 28 }
TypeScript编译后的JavaScript代码
class Person {
    constructor(name, age) {
            this._name = name;
                    this._age = age;
                        }
                            get name() {
                                    return this._name;
                                        }
                                            get age() {
                                                    return this._age;
                                                        }
                                                            displayAsString() {
                                                                    console.log(`Person { _name: '${this._name}', _age: ${this._age} }`);
                                                                        }
                                                                        }
                                                                        let person = new Person("Ashalee", 28);
                                                                        person.displayAsString();
                                                                        
readonly vs const
  • const关键字用于声明一个必须在声明时初始化的常量。它可以用于任何变量,但不能用作类成员。
  • readonly修饰符仅用于属性,并且可以在构造函数中进行初始化。这个修饰符阻止了属性值的重新赋值。
示例项目
  • 技术栈:TypeScript 3.0.1

通过这个示例项目,我们可以看到readonly在TypeScript中如何帮助我们创建不可变的对象属性,从而使得我们的代码更加健壮和易于维护。希望这篇文章能够帮助你更好地理解readonly关键字的用法和它在TypeScript编程中的重要性。 ```

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

t0_54coder

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值