TypeScriptの型定義はアプリの初期設計時に適切な形で導入すれば後の開発が楽になりますが、使うだけならともかく自分で定義するほどには理解が及ばないというケースは多いかと思います。 特に Index types や Index types は扱えると便利なのですが、聞かれると説明に窮することがあり、自分の理解を深めるためにもまとめました。 ※以下の記事は TypeScript3.1.1 が前提です。 EventEmitterを型安全に扱う ありがちですが、 EventEmitter を題材にします。 ほぼこちらの記事の二番煎じです。 TypeScript 2.1 で導入される keyof を使って EventEmitter を定義してみる 以下のように interfaceを定義します。 export type EventDef = {[P in string | symbol]: an
