我有以下通用类型定义:
export interface genericParameter {
[k: string]: any
}
是否存在一种巧妙的方法来限制此类签名分配嵌套对象?例如,我很乐意接受这种类型:
{
prop1: 'val1',
prop2: 123,
}
但不是这样:
{
Obj1: {prop1: 'val1'},
Obj2: {prop2: 123},
}
感谢您的帮助!
---编辑---
考虑以下事项:
[k: string]: string | number | /* unmanageable list */
我猜似乎不是一个选择
答案 0 :(得分:2)
没有办法告诉打字稿不能为给定类型(总之没有条件式和函数)。不过,在这种情况下,基本类型的列表很短,因此我们可以枚举联合中允许的类型
export interface genericParameter {
[k: string]: number | string | boolean
}
修改
正如@ tj-crowder指出的那样,如果要在许多地方使用此类型,则可能需要为联合声明一个类型别名(尤其是,随着添加{ {1}})
BigInt