基本上,我想做的是检查属性a
是否存在于层次结构的每个对象中
{
a: string
key1: {
a: string
subkey1: {
a: string
k: number
}
}
}
我尝试了[key: string]: ContainsA | any;
之类的几种方法,但是它太弱了。
答案 0 :(得分:1)
您的想法正确,但是您需要使类型定义递归:
interface ContainsA {
a: string;
[key: string]:
// Add any other leaf types that aren't required to contain `a` here.
| string // `a` itself
| number // `k`
| ContainsA;
}