typescript 中通过构造函数的参数直接定义属性
点击在我的博客 xuxusheng.com 中查看,有更好的排版哦~
在通常情况下,我们定义一个类时:
class Info {
public name: string
private age: number
constructor() {
// ...
}
}
采用 ts
中简写的语法:
class Info {
constructor(
public name: string
private age: number ) {}
}
它可能看上去不像是有属性的类,但它确实有,利用的是 Typescript
提供的简写形式 — 用构造函数的参数直接定义属性。
这个简写语法做了很多:
- 声明了一个构造函数参数及其类型
- 声明了一个同名的公共属性
- 当我们 new 出该类的一个实例时,把该属性初始化为相应的参数值
在 ng4
中,就可以通过此种写法来注入服务。
对比转换前后的代码如下: