TypeScriptでインターフェースや型のサブフィールドのtypeofを取得する
以下に宣言されたインターフェースまたは型が与えられた場合、
interface Foo {
bar: {
a: number
b: string
}
}
type Foo = {
bar: {
a: number
b: string
}
}
「baz」の型定義を取得する方法はありますか。これは、次のようなことを行うためです
const v: keyof Foo.bar = "a";
回答 #1
はい、あなたはそのようにすることができます
const invalid: Foo["bar"] = "a"; // Type '"a"' is not assignable to type '{ a: number; b: string; }'.(2322)
const valid: Foo["bar"] = { a: 1, b:'a' };
type と interface で動作します。こちらが動作するプレイグラウンドです
