問題:
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 中国語 Web サイトの他の関連記事を参照してください。