Typescript 型定義ファイルのメモ

結局 module とは何なのか

DefinitelyTyped/index.d.ts at master · DefinitelyTyped/DefinitelyTyped · GitHub

最近自分が使った expo の型定義ファイルみると、module 構文はどこにも使われていない。module は終わったコンテンツなのか?

ここで1つ今ある定義ファイルを読みやすくするポイントして、 namespace が導入されたのは結構最近なので、以前からある定義ファイルでは module となっている場合があるということを頭に入れておくといいでしょう。ES6のモジュールシステム導入にともなって...

というように用語とキーワードが改められました。意味は同じですが module(旧 external module)と紛らわしいので namespace が推奨されています。

参考になった知識

この記事とてもよい。

developer.hatenastaff.com

  • interface, namespace などは2回以上書くとマージできる
  • declare namespace 内では定義された entity はデフォルトで ambient 宣言になるため declare は必要ない
  • internal module( module 'N' {} ) → namespace( namespace 'N' {} )
  • external module( module M {} ) → (単に)module( module M {} )