ブックマーク / blog.manaten.net (1)

  • TypeScriptの型定義で麻雀の役判定をする 【dwango Advent Calendar 2日目】 - MANA-DOT

    このエントリは ドワンゴ Advent Calendar 2021 2日目の記事です(夜が明けるまでは2日目!)。 はじめに TypeScriptには Conditional Types や Template Literal Types といったクッソ強力な型機能があります。 これらを用いて、今回は 2p3p4p2m3m4m2s3s4s4s5s6s8s8s のような天鳳牌譜形式の文字列を型引数に渡すと、麻雀の役判定をする型(あくまで型です、関数ではありません)を作ってみようとおもいます。 (ただし時間がなかったため断么九と平和のみです)。 Conditional Types, Template Literal Types って何? それぞれ具体的にどんなものか、マニュアルの例を用いて示すと、以下のような感じです。 // Conditional Types の例 interface Anim

    TypeScriptの型定義で麻雀の役判定をする 【dwango Advent Calendar 2日目】 - MANA-DOT
    pwatermark
    pwatermark 2021/12/03
    なんでテンプレートリテラル型を見て真っ先に麻雀役判定を思いつくのかがさっぱり分からないけどw Cのマクロ芸に通じるものを感じる
  • 1