はじめに
皆さん、大規模開発やってますか?私は多分やってません。その筈なのになんか滅茶苦茶ややこしいことになって、「この〇〇って何の〇〇だ…?」みたいなことになっています。
そういうわけで、自作モジュールを作って使いたかったのですが、そこで若干嵌ったので書いていきます。
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'
モジュール側で名前を付けるのではなく、読み込み側で名前を付けることができるようでした。