簡體   English   中英

TypeScript:使用類作為模塊

[英]TypeScript: use class as module

像這樣添加類本地接口和類型聲明是不可能的:

class Foo {
  interface Bar {}
  private bar: Bar;
}

到目前為止,我一直將所有內容放入模塊中:

module Foo {
  export interface Bar {}
  export class Foo {
    private bar: Bar;
  }
}

但是,最近我發現可以創建類/模塊“混合”。

class Foo {
  private bar: Foo.Bar;
}

module Foo {
  export interface Bar {}
}

編譯器不會對此抱怨,並且類型檢查器似乎可以正確執行所有操作。 這是一個壞主意嗎? 將來會破裂嗎?

文檔中概述了此語言功能:

聲明合並:合並具有類,函數和枚舉的模塊

考慮到文檔中已概述了該模式,並且這種模式相當普遍(尤其是在現有的JavaScript庫中),因此我可以肯定地說此語言功能可以保留。

這是一個有據可查的功能,稱為“聲明合並”,因此有望在一段時間內穩定運行。

具體來說,模塊中可以生成代碼的任何內容都將簡單地成為該類的靜態成員,並且接口無論如何都不會生成代碼,因此它們是否存在於類中並不重要。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM