0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

TypeScript namespaceの使い道 (備忘録)

Last updated at Posted at 2023-09-01

なぜこの記事を書いたかは経緯が長いので最後に書きます!
周り道して知識を蓄えるのも良いなと思いました。。。
記事、ドキュメントを書いてくださった皆様に感謝です。

namespace が便利な時

オブジェクトとして型を名前付き export したい時

namespace
/**
 * modules/hoge.ts
 */
export namespace Hoge {
    export type ApperCase = 'A' | 'B' | 'C';
}

/**
 * example.ts
 */
import { Hoge } from './modules/hoge.ts';

const text: Hoge.ApperCase = 'A';
no-namespace
/**
 * modules/types.ts
 */
export type ApperCase = 'A' | 'B' | 'C';

/**
 * example.ts
 */
import * as Hoge from './modules/types';

const text: Hoge.ApperCase = 'A';

後者の場合、自由に名前をつけてimportできてしまうので、モジュールごとで以下のようになってしまう恐れがある。
これだと可読性の低下、リファクタリングで手間になる。

example1.ts
import * as Ho from './modules/types';

const text: Ho.ApperCase = 'A';
example2.ts
import * as ge from './modules/types';

const text: ge.ApperCase = 'A';

経緯

npmのライブラリの記事を見ていて、以下のように辿り着いたのがnamespaceだった。

winstonってなんだ、ググって調べよう。記事あった。

なんとサバイバルTypeScriptの作者の方でした。。🤩
TypeScriptの学習リソースでroadmap.shを見つける。

image.png

NameSpacesとは??使いどき知りたいな、ググって調べよう。

ここで参考となる記事に出会いました!(完)

記事の書き方参考になりました!ありがとうございます

宣伝させてください!

0
1
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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?