【发布时间】:2021-11-25 21:05:46
【问题描述】:
在打字稿中是否有一种方法可以制作一个通用对象,它可以有很多层次,但仍然总是以字符串或数字属性值结尾。
interface GenericObject {
[key: string]: string | number | GenericObject | GenericObject[];
}
const object: GenericObject = {
test: 'test',
testNum: 2,
test2: {
test: 'test'
},
test3: [
{
test: 'test'
}
]
}
这样的东西在创建对象时可以正常工作,但在尝试访问属性时会引发错误。
object.test2.test;
object.test3[0].test;
类型'string | 上不存在属性'test'号码 |通用对象 | GenericObject[]'
有没有办法让这个工作,这样你就可以无限深层次,但总是以字符串或数字结尾?
【问题讨论】:
标签: typescript typescript-generics type-constraints