ソースコード上にリンクを張るために型エイリアスを使うことがある
例えば行番号は、型としてはただの整数。しかし値が0以上なのか1以上なのかが混乱しやすい。
課題: 行番号を使う場所にいちいち「行番号は0以上」とコメントを書いて回るのはめんどくさい。
/// 指定した行のテキストを取り出す。行番号は0以上。末尾の改行は除く。
let getLineText (row: int) : string = ...
対策: 行番号を表す型エイリアスを作って、それにコメントを書いておくことで一元化できる。
//// 行番号 (0以上)
type RowIndex = int
// ...
/// 指定した行のテキストを取り出す。末尾の改行は除く。
let getLineText (row: RowIndex) : string = ...
RowIndex
の部分をホバーすると「行番号 (0以上)」と表示されるRowIndex
の定義箇所にジャンプできるし、逆にRowIndexの使用箇所を列挙することもできる。
型エイリアスに限らず、定義にコメントをつけたり、シンボル参照の検索対象とするために型や関数を作ることもたまにある。