我要声明未嵌套的通用对象类型(值不是对象/数组,仅原始)
例如:
有效:
{
a:"value",
b:false,
c:4
}
无效:
{
a:{b:"c"}
}
{
a:[5]
}
类似这样的东西(当然这是无效的声明):
interface NotNestedObject {
[x: any]: not Array/Object;
}
答案 0 :(得分:1)
幸运的是,打字稿中没有很多原始类型,因此您只需将它们都以联合类型列出即可。
interface NotNestedObject {
[x: string]: number|boolean|string|null|undefined;
}
如果您希望包含日期
interface NotNestedObject {
[x: string]: number|boolean|string|Date|null|undefined;
}
如果您还希望包含功能
interface NotNestedObject {
[x: string]: number|boolean|string|Date|Function|null|undefined;
}
当然,如果您不希望允许它们,则可以删除null和undefined。除非您启用strictNullChecks编译器选项,否则默认情况下将包括它们。