TypeScript类参数成员

TypeScript提供了一种简洁语法能够把构造函数的形式参数声明为类的成员变量,它叫作参数成员。在构造函数参数列表中,为形式参数添加任何一个可访问性修饰符或者readonly修饰符,该形式参数就成了参数成员,进而会被声明为类的成员变量。示例如下:

class A {
   constructor(public x: number) {}
}

const a = new A(0);
a.x; // 值为0

此例在类A的构造函数中,参数x是一个参数成员,因此会在类A中声明一个public的成员变量x。第5行,使用实际参数0来实例化类A时会自动将成员变量x的值初始化为0,因此第6行读取成员变量x的值时结果为0。我们不需要在构造函数中使用“this.x = x”来设置成员变量x的值,TypeScript能够自动处理。

上例中,我们使用的是public修饰符。类似地,我们也可以使用其他修饰符来定义参数成员。示例如下:

class A {
   constructor(
       public x: number,
       protected y: number,
       private z: number
   ) {}
}

class B {
   constructor(readonly x: number) {}
}

readonly修饰符也可以和任意一个可访问性修饰符结合使用来定义只读的参数成员。示例如下:

class A {
   constructor(
       public readonly x: number,
       protected readonly y: number,
       private readonly z: number
   ) {}
}

酷客网相关文章:

赞(0)

评论 抢沙发

评论前必须登录!