TypeScript 参数属性
Posted wayou
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TypeScript 参数属性相关的知识,希望对你有一定的参考价值。
假设类中创建的 class Octopus
readonly name: string;
readonly numberOfLegs: number = 8;
constructor (theName: string)
this.name = theName;
为了初始化 TypeScript 提供了在构造器上同时完成属性的声明和初始化的功能。 以下代码和上面的等效: class Octopus
readonly numberOfLegs: number = 8;
constructor(readonly name: string)
这种通过在构造器的入参中声明属性的方式叫作 Parameter properties。 通过在构造器入参上添加访问限定符(accessibility modifier ), 一个比较综合的示例: class Foo
a: string;
public b: string;
protected c: string;
constructor(d: number, public e: string)
var foo = new Foo(1, "2");
console.log(foo.a); // ? `a` 没有修饰词,和 C++ struct 默认公有表现一样为 `public`,与 C++ class 默认私有刚好相反
console.log(foo.b); // ? `b` 是公有
console.log(foo.c); // ?? `a` `protected` 只能自己和继承类中访问
console.log(foo.d); // ?? `d` 没有修饰词,不是入参属性,类上面没有该属性
console.log(foo.e); // ? `a` 通过构造器创建的 `public` 属性 相关资源 |
以上是关于TypeScript 参数属性的主要内容,如果未能解决你的问题,请参考以下文章
与 Typescript 反应:“never[]”类型的参数不可分配给“StateProperties |”类型的参数(() => 状态属性)'
Vscode 可用属性 intellisense 在参数为字符串的函数中使用 javascript 或 typescript