LoginSignup
0
0

More than 1 year has passed since last update.

TypeScriptでnamespaceは非推奨、でもモジュール化したい。

Posted at

はじめに

皆さん、大規模開発やってますか?私は多分やってません。その筈なのになんか滅茶苦茶ややこしいことになって、「この〇〇って何の〇〇だ…?」みたいなことになっています。
そういうわけで、自作モジュールを作って使いたかったのですが、そこで若干嵌ったので書いていきます。

namespaceを使いたかった

「TypeScriptでモジュールってどうやって作るんだっけ?」と思って一番最初に行き着いたのが、namespaceを使う方法でした。

hoge.ts
namespace Hoge {
    export type Fuga = {/*...*/}

    export class Piyo {
        public fuga: Fuga;
        // ...
    }
}
main.ts
import * from './hoge.ts';

こうしてみたのですが、警告が出てきました。どうもnamespaceを使うのは非推奨のようでした。
どうしたものか……。

解決策

そう思って調べたところ、この方法でできることが分かりました。

hoge.ts
export type Fuga = {/*...*/}

export class Piyo {
    public fuga: Fuga;
    // ...
}

え、名前空間無かったら読み込み先で名前の衝突とか諸々起こすんじゃないの?!……と思いましたが、そうでは無いようでした。恐らく、import文が肝です。

main.ts
import * as Hoge from './hoge.ts'

モジュール側で名前を付けるのではなく、読み込み側で名前を付けることができるようでした。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0