ネストされたオブジェクトのタイプ、葉に特定のタイプを持つタイプが必要です。特定のリーフタイプを持つネストされたオブジェクトのタイプ
let a: Leaves<number> = {
"foo": 1,
"bar": {
"baz": 2
}
};
をし、これが失敗する:
私はこれが正しいと期待
let a: Leaves<number> = {
"foo": 1,
"bar": {
"baz": 'something else' // Leaf of type string
}
};
私は
export type Leaves<T> = {
[P in keyof T]: T | Leaves<T>;
}
を試してみましたが、その定義との両方の例は、コンパイルエラーを与えます。最初のものは
Type '{ "foo": number; "bar": number; }' is not assignable to type 'number'.
これを修正する方法はありますか?
ありがとうございました。私は少し混乱していたと思います。 – MaximeW