TL;DR

  • 公開する API(export しているクラスや関数、型)のドキュメントは TSDoc で書く。TSDoc では @param や @returns、Markdown が使える。
  • 型情報はドキュメントに書かない。非推奨になった API には @deprecated を付ける。

内容

TSDoc で書く

多くの IDE やエディタ(Zed など)が TSDoc に対応しているので、公開する API を説明するコメントは TSDoc で書くべきである。TSDoc は JSDoc とほぼ同じ書き方ができ、@param や @returns などのタグを使える。

型定義にも TSDoc を書ける。

/** ある時間にある場所で行われた運動量の計測 */
interface Measurement {
  /** 計測の行われた場所 */
  position: Vector3D
  /** 計測の行われた時間、UNIX epoch からの秒数 */
  time: number
  /** 観測された運動量 */
  momentum: Vector3D
}

個々のフィールドに書いたドキュメントは、Partial<T> や Pick<T, Keys> のようなポリモーフィックなマップ型にも引き継がれる(項目15 型演算とジェネリック型を使って重複を避ける)。

type PartialMeasurement = Partial<Measurement>

ジェネリック型の型パラメータの説明には、@typeParam か @template を使う(項目50 ジェネリックを型に対する関数と考える)。

Markdown を使う

TSDoc には Markdown が使える。ただし、コメントは短く、要点を押さえて書く。

/**
 * この _interface_ はプロパティを**3つ**持つ
 * 1. x
 * 2. y
 * 3. z
 */
interface Vector3D {
  x: number
  y: number
  z: number
}

型情報を書かない

JSDoc には @param {string} name ... のように型情報を書く方法があるが、TypeScript では不要なので書かない(項目31 型情報をドキュメントで繰り返さない)。

非推奨の API には @deprecated を付ける

非推奨の API には @deprecated を付ける。@deprecated を付けたシンボルは、エディタ上や補完の候補で取り消し線付きで表示される。

キーワード