打字稿不是嵌套的对象类型

时间:2020-08-10 14:50:34

标签: arrays typescript object nested

我要声明未嵌套的通用对象类型(值不是对象/数组,仅原始

例如:

有效:

{
 a:"value",
 b:false,
 c:4
}

无效:

{
a:{b:"c"}
}

{
a:[5]
}

类似这样的东西(当然这是无效的声明):

interface NotNestedObject  {
  [x: any]: not Array/Object;
}

1 个答案:

答案 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编译器选项,否则默认情况下将包括它们。