1

Angular 2 指南中有这个示例,其中包含一个构造函数

component://Typescript
class DisplayComponent {
  myName: string;
  names: Array<string>;
  constructor() {
    this.myName = "Alice";
    this.names = ["Aarav", "Martín", "Shannon", "Ariana", "Kai"];
  }
} 

来自https://angular.io/docs/ts/latest/guide/displaying-data.html#Create-an-array(检索 2015-10-30)

考虑这是一个简单的例子,但在现实生活中,我的构造函数通常会变得越来越大。另外我有时需要在几个地方使用相同的逻辑,而不仅仅是在构建时间上。

我的第一反应是创建一个单独的函数并在实例上调用它。但是 Typescript 不允许这样做,因为在构造函数运行时不会创建实例。

我的问题是:如何从构造函数中提取代码行并将其拉出到单独的函数中?

4

1 回答 1

2

这是你想要的 ?

class MyClass {

    constructor( ) {
        MyClass.saySomething()
        this.sayItAll()
    }

    public static saySomething(){
        console.log('Hi')
    }

    public sayItAll(){
         console.log('Hello')
         MyClass.saySomething()
    }
}

所以你也可以MyClass.saySomething()在没有 MyClass 实例的情况下从其他类调用?

于 2015-10-30T13:40:57.210 回答