【发布时间】:2017-05-05 16:20:46
【问题描述】:
我想要一个嵌套对象的类型,在它们的叶子上有一个特定的类型。
我希望这是正确的:
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'.
有没有办法解决这个问题?
【问题讨论】:
标签: typescript recursive-datastructures