私有静态函数与打字稿中的公共静态函数有什么区别?

时间:2017-04-25 17:38:13

标签: class angular typescript static

在angular2服务的背景下;私有静态函数与打字稿中的公共静态函数有什么区别?

  public static getUserStockList(): Stock[] {
    /* TODO: implement http call */
    return WATCHLIST;
  }

VS。

  private static getUserStockList(): Stock[] {
    /* TODO: implement http call */
    return WATCHLIST;
  }

修改

何时在私有函数上使用私有静态函数是否合适?

1 个答案:

答案 0 :(得分:2)

可以从类的实例调用私有静态方法 一个例子:

interface Data {
    // ...
}

interface StrictData {
    // ...

abstract class MyClass {
    protected constructor(data: StrictData) {
        // ...
    }
}

class AnotherClass extends MyClass {
    private static normalizeData(data?: Data | StrictData): StrictData {
        // ...
    }

    constructor(data?: Data | StrictData) {
        super(AnotherClass.normalizeData(data));
    }
}
可以从实例访问

AnotherClass.normalizeData,编译器就可以了 但是,这个:

console.log(AnotherClass.normalizeData({}));

将导致:

  

属性' normalizeData'是私人的,只能在课堂上访问   ' AnotherClass'

相关问题