ブックマーク / susisu.hatenablog.com (1)

  • 引数の型を推論してから受け付けるかどうかを決める後出しパターン - Object.create(null)

    2023-05-24 追記 改訂 + α 版を書きました. お題 具体例として, ちょうど長さ 3 の文字列のみを引数として受け付ける関数を作ります. こんな関数を作って何がしたいのかは不明. 先出しパターン よくある手段としては「ちょうど長さ 3 の文字列」のような制約を満たす型をあらかじめ定義しておいて, 引数の型としてそれを使うという方法です. type StringOfThreeChars = /* ちょうど長さ 3 の文字列 */; declare function myFunc(str: StringOfThreeChars): void; myFunc("ab"); // error myFunc("abc"); // ok myFunc("abcd"); // error では StringOfThreeChars はどう定義するとよいでしょうか? おそらく現時点 (Typ

    引数の型を推論してから受け付けるかどうかを決める後出しパターン - Object.create(null)
    Krouton
    Krouton 2021/03/25
    type Char = "\u0000" | "\u0001" | ... | "\uFFFF"; の件を実際にやったらコンパイル爆発して楽しかった
  • 1