ウェブサイト検索

javascript - TypeScriptで名前空間からクラスをインポートする方法


同じファイル内で名前空間を使用すると、すべてはうまく動作します。しかし、すべてのクラスをそれぞれのファイルに分割したいと考えると、インポートエラーが発生します。このコードは単なる例で、私はクラスAをさらに拡張する必要があり、その場合はさらに悪化します。

namespace a {
    export abstract class A {
        protected abstract message(message: string): void;
        message(message: string): void {
            this.message(message);
        }
    }
}
namespace a {
 export class B extends A {
     public message(message: string) {
         console.log(message);
     }
 }
}

namespace a {
    export class Message {
        public static createMessage(): A {
            return new B()
        }
    }
}

import Message = a.Message;
const message = Message.createMessage();
message.message("My custom message");