なつねこメモ

主にプログラミング関連のメモ帳 ♪(✿╹ヮ╹)ノ 書いてあるコードは自己責任でご自由にどうぞ。記事本文の無断転載は禁止です。

TypeScript で文字列パラメータから型を得たい

どういうことかと言われると、こんな感じ。

  • ある関数 A はパラメータに指定された文字列によって返すクラスが異なる
  • 上記関数 A を良い感じに型付けしたい

自分にはこんな感じの型定義しか思いつかなかった。

class ClassA { ... }
class ClassB { ... }

type Container = {
  ClassA: ClassA;
  ClassB: ClassB;
}

declare function inject<T extends keyof Container>(name: T): Container[T];

これで、こんな感じで型を得ることが出来る。

f:id:MikazukiFuyuno:20190807005013p:plain

ということでメモでした。