1
在掌握TypeScript的模塊導入/導出系統時,它仍然沒有迴避我,並且感覺像是一個只有他不能被命名的黑暗藝術...... I 「M試圖瞭解我怎樣才能使下面的導入乾淨了一點TypeScript跨多個具有相同模塊名稱的文件導入
B.ts
export module System {
export class Bravo {
constructor(n: number) {
console.log(`Bravo ${n}`);
}
}
}
A.ts
import {System as System1} from "./B";
export module System {
export class Alpha extends System1.Bravo {
constructor() {
super(123);
}
}
}
不喜歡這件怎麼樣
import { System as System1 }
extends System1.Bravo
這對我來說,伸出像一個突兀!有什麼辦法讓它更清潔?
import { System.Bravo } from "./B";
extends Bravo
像這樣的事情?
作爲一個側面說明,就是我真正想要實現
- 正確使用的命名空間,即
System.Foo.Bar.MyAwesomeClass
。 - 將類分離到它們自己的文件中,以便構建不包含他們不需要的東西。
- 關於上述問題,樹在搖晃嗎?
- 使用導出/導入作爲管理依賴性的機制。
糾正我,如果我錯了,但在這種情況下實際發射的代碼做n不存在於一個模塊或名稱空間中(仍然不能完全確定它們之間的區別),那麼如何使用它來將我的類型從全局範圍中分離出來? – series0ne
像你一樣,模塊系統對我來說是巫術。我一直看到「模塊」已被棄用,你應該使用「名稱空間」,所以我不使用「模塊」關鍵字。 – DeeV
如果您擔心類型衝突,則可以在不發生碰撞的情況下爲不同的類類型使用相同的名稱。使用「default」關鍵字,除非將其導入大括號(如{{Alpha}'),否則在導入它們時可以實際命名它們。在這種情況下,你必須做'{Alpha as AnotherAlpha}'。但是,除此之外,您可以從「./System/Alpha」導入類似'import MySuperAwesomeClass的'Alpha類,並將其用作'MySuperAwesomeClass'。 – DeeV