ブックマーク / zenn.dev/pixiv (1)

  • bivarianceHack とは何か、なぜ必要なのか

    TypeScript に bivarianceHack と呼ばれるテクニックがある。 これは、関数を意図的に双変(bivariant) にするテクニックだ。著名なところだと React の型定義で使われている type EventHandler<E extends SyntheticEvent<any>> = { bivarianceHack(event: E): void }["bivarianceHack"]; 実は自分はこのテクニックをとあるコードベースで使ったことがあるのだが(そしてそこにはある程度やむを得ない事情があったのだが)、当然初めて見たメンバーにとっては意味がわからない箇所となってしまった。 実際 bivarianceHack が必要になる事情を説明すると結構話が長い上に込み入ってしまうので、この記事でできるだけ噛み砕いてその背景を説明しようと思う。 TL;DR Type

    bivarianceHack とは何か、なぜ必要なのか
    toshikish
    toshikish 2020/09/22
  • 1