タグ

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

  • オブジェクト型の重箱の隅 - Object.create(null)

    TypeScript のオブジェクト型について比較的触れられる機会が少ないこと (重箱の隅) をただ集めただけの記事です. オブジェクト型やその周辺に明るくなりたい人, または任意の重箱の隅が好きな人向け. 挙動の確認は 2022-11-06 時点の最新版である 4.8.4 で行っています. オブジェクト型 プリミティブ値との関係 別の「オブジェクト」型 空のオブジェクト型 interface を使ったオブジェクト型の定義 class を使ったオブジェクト型の定義 オブジェクト型のメンバー プロパティ Index Signatures メソッド Call Signatures Construct Signatures メンバーに対する修飾子 readonly 修飾子 オプショナル修飾子 部分型関係 keyof によるメンバーの列挙 Mapped Types オブジェクト型のキーを使った m

    オブジェクト型の重箱の隅 - Object.create(null)
  • Brainfuck 実装で学ぶ TypeScript 型レベルプログラミング - Object.create(null)

    およそ 4 年前に「TypeScript で型レベル Brainfuck」という記事を書きました. susisu.hatenablog.com それから 4 年間の間に TypeScript も進化し, 型レベルプログラミングの技法にも大きな変化がありました. 特に顕著な影響があったものでは, TypeScript 4.0 のタプル型の改善 TypeScript 4.1 のテンプレートリテラル型や条件型での再帰 TypeScript 4.5 の条件型での末尾再帰の除去と, 再帰の上限の緩和 などがあります. こういった変化も踏まえた上で, いまから TypeScript の型レベルプログラミングに入門する人に向けて改めてまとめ直したものがこの記事です. 内容は記事執筆時点の最新版である TypeScript 5.4.5 で動作を確認しています. ぜひ Playground などを使って,

    Brainfuck 実装で学ぶ TypeScript 型レベルプログラミング - Object.create(null)
    todays_mitsui
    todays_mitsui 2024/04/25
    おもろい
  • 1