首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >类型记录动态对象接口

类型记录动态对象接口
EN

Stack Overflow用户
提问于 2020-06-22 10:38:06
回答 2查看 139关注 0票数 1

我正在使用javascript创建一个对象,并希望为数据添加一个接口:

Javascript:

代码语言:javascript
复制
const childGroups: Children = {};
      childGroups.children = [];

// Pushing some data 
childGroups.children.push(children);

接口:

代码语言:javascript
复制
export interface Child {
    ClusterPoint
}

export interface Children {
    children: {
        [key: number]: Child
    }
}

我得到以下错误:Property 'children' is missing in type '{}' but required in type 'Children'. Property 'push' does not exist on type {[key: number]: Child}

数据如下:

任何帮助都将不胜感激。

更新

多亏了尼基塔·马德耶夫,我才得以让它与此协同工作:

代码语言:javascript
复制
export interface Child {
    children: {
        ClusterPoint
    };
}

export interface Children {
    children: Child[];
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-06-22 10:42:51

代码语言:javascript
复制
export interface Child {
    ClusterPoint;
}

export interface Children {
    children: Child[];
}

const childGroups: Children = { children: [] };

// Pushing some data
childGroups.children.push(newChildren);

  1. Children.children -对象,而不是数组,对象在初始化过程中没有推送方法
  2. ,您需要指定所有必要的属性

票数 5
EN

Stack Overflow用户

发布于 2020-06-22 10:51:17

如果您想要实现这种结构

代码语言:javascript
复制
const childGroups: Children = {};
      childGroups.children = [];

那么接口将是

代码语言:javascript
复制
export interface Children {
    children?: Child[];
}

如果你想实现这个结构

代码语言:javascript
复制
const childGroups: Children = {};
      childGroups.children = {[some_id]: some_childValue};

那么接口将是

代码语言:javascript
复制
export interface Children {
    children?: {
      [key: number]: Child
     };
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62512523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档