繁体   English   中英

Typescript 未嵌套 object 类型

[英]Typescript not nested object type

我想声明非嵌套的通用 object 类型(值不是对象/数组,只有原始类型)

例如:

有效的:

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

无效的:

{
a:{b:"c"}
}

{
a:[5]
}

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

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

幸运的是,typescript 中的原始类型并不多,因此您可以简单地将它们全部列在一个联合类型中。

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 编译器选项,否则它们默认包含在内。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM