首页 > 解决方案 > 如何为数组 Typescript 编写自定义类型?

问题描述

我有接口类型:

interface IForm {
   id: number;
   name: string;
} 

我需要编写自定义type来存储这个对象:

let a = ["one": [IForm, IForm, IForm], "two": [IForm, IForm, IForm]]

如何在 TypeScript 中构建它?

结果我需要按键获取所有表格?

let forms = a["one"]; --> [IForm, IForm, IForm]
forms[0]; --> IForm

标签: typescripttypescript2.0

解决方案


您可以使用映射类型:

type FormList = { [name: string]: IForm[]; };

或者如果"one""two"是固定属性,只需:

interface FormList {
    one: IForm[];
    two: IForm[];
}

这个定义意味着属性总是存在的onetwo如果没有,您可以将它们设为可选:

interface FormList {
    one?: IForm[];
    two?: IForm[];
}

推荐阅读