問題:
您有使用 TypeScript 外部命名空間的程式碼模組,但您遇到錯誤或意外行為。這是您的程式碼:
// baseTypes.ts export namespace Living.Things { export class Animal { move() { /* ... */ } } export class Plant { photosynthesize() { /* ... */ } } } // dog.ts import b = require('./baseTypes'); export namespace Living.Things { // Error, can't find name 'Animal', ?? export class Dog extends Animal { woof() { } } } // tree.ts // Error, can't use the same name twice, ?? import b = require('./baseTypes'); import b = require('./dogs'); namespace Living.Things { // Why do I have to write b.Living.Things.Plant instead of b.Plant?? class Tree extends b.Living.Things.Plant { } }
糖果杯類比:
想像在紙上整理糖果。如果每張紙都是一個單獨的模組,那麼在每張紙上創建一個標有“A”的杯子並沒有什麼幫助——這就像創建額外的步驟而沒有實際組織糖果一樣。
無杯子:
不要使用命名空間,請考慮像這樣編寫程式碼:
// Mod1.ts export class Twix { ... } // Mod2.ts export class PeanutButterCup { ... } // Mod3.ts export class KitKat { ... }
這會創建一個更簡單的結構,而無需需要不必要的命名空間。
命名空間不適合模組的原因:
外部模組指南:
危險訊號:
以上是如何透過 TypeScript 外部模組有效使用命名空間?的詳細內容。更多資訊請關注PHP中文網其他相關文章!