4
A
回答
6
簡短回答: Typescript不支持將類定義拆分爲多個文件。
解決方法:您可以定義包含類成員的接口以及實現該接口的兩個不同類。然後混合一個類到另一個類的屬性,組成一個組合類。例如:
LargeClass.a.ts
interface LargeClass {
methodA(): string;
methodB(): string;
}
class LargeA implements LargeClass {
methodA:() => string; // not implemented, needed since otherwise we don't extend LargeClass
methodB() {
return "Hello world";
}
}
LargeClass.b.ts
class LargeB implements LargeClass {
methodA() {
return "Foo";
}
methodB:() => string; // not implemented, needed since otherwise we don't extend LargeClass
}
Usage.ts
// Using underscore's extend to copy implementation from A to B
var c:LargeClass = _.extend(new LargeA(), new LargeB());
// Manually mixing in a to b
var a = new LargeA();
var b:LargeClass = new LargeB();
for (var prop in a) {
b[prop]=a[prop];
}
這但是,如果你需要這個類的構造函數,它將不起作用。實際上它是次優的......解決方法沒有那麼多:)
哦,順便說一下,這是可行的,因爲typescript不會爲類發出單元化的屬性/字段類型聲明 - 它僅將它們用於類型檢查。
我也知道你可以做到這一點沒有接口,只是在一個漂亮的方式類構造......我會離開該怎麼做,作爲一個練習,讀者現在...
相關問題
- 1. 在單獨文件中定義的類
- 2. 在Typescript定義文件中定義類
- 3. 在單獨的文件中爲每個枚舉定義方法
- 4. 在帶有MATLAB屬性的單獨文件中定義方法
- 5. 誰在PHP中定義Mysqli類及其方法/屬性
- 6. 如何在MATLAB中定義一個使用單獨文件中定義的方法的類(在@ -folder中)?
- 7. 類未定義的Typescript方法
- 8. Typescript:如何將定義分解爲單獨的文件
- 9. Typescript Error將類放在單獨的文件中
- 10. yuidoc - 如何在其他文件中定義類方法
- 11. 的Python在單獨的PY文件中定義類函數
- 12. 在Scrapy類中定義其他方法
- 13. 在內部類GDB中的不完整類型與虛擬方法定義在一個單獨的文件
- 14. C++命名空間和在單獨文件中定義類
- 15. 在單獨的類中調用方法
- 16. SPServices的TypeScript定義文件
- 17. TypeScript的socket.io定義文件
- 18. 是否可以在頭文件中聲明constexpr類並將其定義在單獨的.cpp文件中?
- 19. Grails。域類及其方法?
- 20. 未定義類方法涉及
- 21. VisualBasicValue <T>:訪問自定義類及其方法\性能
- 22. 從一個單獨的文件中的類的方法調用
- 23. tensorflow中的獨立協議緩衝區文件及其用法?
- 24. Typescript錯誤TS2688:無法找到'.AppleDouble'的類型定義文件
- 25. 無法將SourceMap(.map)文件移動到Typescript中的單獨文件夾中
- 26. 從Java中的單獨類文件調用方法
- 27. 如何在單獨的線程中執行自定義類的方法調用?
- 28. objective-c:一個.m文件中的多個類定義,以及調用方法
- 29. 在Typescript定義文件中定義未知類型的Javascript函數
- 30. 訪問python中單獨類中的單獨方法的列表
好了,假設myclass.ts包含MyClass的聲明。現在我創建第二個文件,並在頂部放置以下內容: /// 如何繼續?什麼是定義MyClass方法的語法?例如,在C++中,我會在方法的定義之前添加MyClass ::。 –
vexator
我可能會誤解你 - 但如果你認爲你需要一個用於定義類的頭文件(就像在C++中一樣),你不需要。要在secondfile.ts中使用來自myclass.ts的定義(類,接口等),它應該與頂部的typescript引用標籤一起工作。然而,類型將在全局命名空間中聲明,因此可能會發生衝突,因此您應該注意這一點。在這種情況下,Typescript提供模塊系統並與CommonJS或AMD模塊加載器集成。 –
是的,我認爲我們不是在談論同樣的事情:我有一個類代表一個圖形設備,有幾十種方法,通過設計,不能分成幾個類。我希望能夠在一個文件中的成員變量,而在另一個文件中的一些方法定義沿定義類:) 類GraphicsEngine({...} 文件2: 文件1 GraphicsEngine .renderStuff(){...} GraphicsEngine.renderSomeOtherStuff(){...}等 – vexator