keyofTypeScript 独自のシンタックスです。オブジェクト型からその型が持つプロパティ名からなる文字列リテラル型の Union が取得できます。interface Value { foo: string; bar: string; baz: string; } type ValueKey = keyof Value; // type ValueKey = "foo" | "bar" | "baz"