網站搜尋

TypeScript:在多個檔案中宣告類別的函式


是否可以將類別宣告拆分到不同的檔案?例如屬性、建構子和一些函數在一個檔案,其他函數在另一個檔案?

答案#1

正如MartyIX所寫,這並不被直接支持。

不過,還是有方法可以做到。方法需要被定義為屬性,但這樣做可能會引發繼承問題。

檔案 1:

class Foo {
    bar() {}
    hello: (world: string) => any;
}

檔案 2:

Foo.prototype.hello = function (world: string) {
    console.log('hello ' + world);
};

// Works
new Foo().hello('world');

class Bar extends Foo {}

// Works
new Bar().hello('world');

class Bam extends Foo {}
    // Error TS2425
    hello () {}
}

答案#2

此功能稱為 partial classes,但目前尚不支援。

你可以對這個錯誤問題加上你的 +1 https://github.com/Microsoft/TypeScript/issues/563 :)