TypeScript中readonly构造函数参数是否默认创建并赋值属性?
回答:构造函数中带
readonly的参数会自动创建并赋值类属性 没错,你观察到的这个现象完全是TypeScript特意设计的语法糖效果——当你在构造函数参数前添加readonly(或者public/private/protected这类访问修饰符)时,TypeScript会自动帮你完成两件事:
- 在类的内部定义一个同名的
readonly类属性 - 在构造函数执行时,自动把参数的值赋值给这个属性
所以哪怕你在构造函数体里没写任何手动赋值的代码,后续依然可以通过this.constructorParam正常访问这个属性,这个特性在抽象类、继承类或者实现接口的类中同样生效。
举个更完整的例子对应你的场景:
// 假设存在基类和接口 abstract class BaseClass { /* ... */ } interface SomeInterface { /* ... */ } export abstract class YourClass extends BaseClass implements SomeInterface { constructor(readonly constructorParam: Type) { super(); // 继承基类时必须调用super // 无需手动写 this.constructorParam = constructorParam; } // 后续方法可以直接使用该属性 demoMethod() { console.log(this.constructorParam); } }
这个语法糖的设计目的是减少冗余代码,让类的属性定义和构造函数参数初始化合并成一步,是TypeScript中非常常用的简化写法。
内容的提问来源于stack exchange,提问作者Michał Turczyn
相关产品推荐
相关产品推荐

