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 を付けたシンボルは、エディタ上や補完の候補で取り消し線付きで表示される。