パッケージ/モジュールとプログラム・エンティティの名付け

NPMパッケージのネーミングは

  • @user-or-org/package@version

npm: URIスキームをつければ:

  • npm:@user-or-org/package@version

TypeScriptの宣言空間種別を、

  • [val] 値名 宣言空間
  • [type] 型名 宣言空間
  • [ns] 名前空間名 宣言空間

とすると、

  • npm:@user-or-org/package@version/[val]foo

とかになる。

ここで言っているプログラム・エンティティとは:

  • 変数
  • 関数
  • クラス (コンテナ)
  • メンバー変数
  • メンバー関数〈メソッド〉
  • インターフェイス(TypeScriptのみ) (コンテナ)
  • 名前空間〈内部モジュール〉(コンテナ)
  • ファイルモジュール(コンテナ)
  • 列挙(TypeScriptのみ)
  • 型別名(TypeScriptのみ)

例えばクラス foo のメソッド bar があると、異なる宣言空間にある名前は次のように表現できるだろう。

  • npm:@user-or-org/package@version/[val]foo/[val]bar
  • npm:@user-or-org/package@version/[type]foo/[val]bar

impor宣言は、長い名前を短くする接頭辞マップと解釈できる。接頭辞が空なら、環境〈アンビエント〉の大域空間に名前が配置〈allocate | placement〉される。

JavaScript/TypeScriptの名前に関しては、次の2つを読めば大丈夫。