角:空数组作为类型对象的属性

时间:2019-07-20 11:58:07

标签: angular typescript

所以我有一个模型:

export interface Clan {
  name: string;
  members: [string];
  invitees: [string];
}

当用户创建一个新氏族时,它还没有受邀者,只有一个成员

newClan = {
   name: form.value.name;
   members: [user.id];
   invitees: [];
}

这会导致错误

  

类型[[]]中缺少属性'0',但类型'[string]'中必需。

当然我可以使用 null undefined 的值,也可以只将模型中的被邀请者定义为不是必需的< / strong>:

export interface Clan {
  name: string;
  members: [string];
  invitees?: [string];
}

但是有没有一种方法可以在创建新氏族时使用被邀请者空数组?

1 个答案:

答案 0 :(得分:5)

我猜想,使用string[]代替[string]可能是合理的,因为[string]是一个数组,其中只有一个字符串。

export interface Clan {
  name: string;
  members: string[];
  invitees: string[];
}

const newClan: Clan = {
   name: form.value.name;
   members: [user.id];
   invitees: [];
}

编辑: @R。理查兹的评论提供了很好的解释。阅读here,了解有关TypeScript中的教pel的更多信息:

  

元组类型使您可以使用固定数量的数组表示数组   类型已知但不必相同的元素。