簡體   English   中英

數據類型應該是模塊打字稿中的任何內容

[英]data type should be anything inside module typescript

是否可以有一個數據類型而不是any ,它是這樣的模塊的一部分:

module SomeModule  {
    export class One  { 
        // ...
    }

    export class Two { 
        // ...
    }

    // ...
}

我需要這樣的東西:

function bla(myModel: anyThingInsideModule_insteadOfAnyDataType){...}

那可能嗎 ?

不,但是您可以讓他們實現/擴展基本接口/類:

module SomeModule {
    export interface Base { }

    export class One implements Base { }

    export class Two implements Base { }
}

function bla(myModel: SomeModule.Base) { }

要么:

module SomeModule {
    export abstract class Base { }

    export class One extends Base { }

    export class Two extends Base { }
}

您還可以使函數通用:

function bla<T extends SomeModule.Base>(myModel: T) { }

在TypeScript 2.0中,您可以為參數甚至變量指定多種可能的數據類型:

function bla (myModel: One | Two)

然后,您可以使用任何一種類型的參數。

編輯如果SomeModel很大,如下面的注釋中所述(顯然有100多個類,我認為這是不好的設計,但是,我沒有判斷),創建一個abstract基類可能是最容易的在SomeModel並從中派生模型中的每個類。

export abstract class MyModelClass { /* Any shared logic here */ }

export class One extends MyModelClass { ... }

export class Two extends MyModelClass { ... }

...

那你可以寫

function bla(myModel: MyModelClass) { ... }

暫無
暫無

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

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