首页 > 解决方案 > 在打字稿中创建对象时忽略界面中的某些属性?

问题描述

我定义了一些属性的接口。我想从此接口创建一个对象,但是在创建时我不想完全初始化接口中提到的所有属性。我只想初始化一些。我怎样才能做到这一点?谢谢你。

export interface Campaign {
  id: string;
  name: string;
  createdOn: string;
  lastUpdated: string;
  createdBy: User;
  type: CampaignType;
  status: CampaignStatus;
  startDate: string;
  endDate: string;
  budget: number;
  description: string;
  account: Account;
}

我想创建一系列活动对象。这就是我想要做的。

let campaigns: Campaign[] = [
    {  id:"1",
       name: "test campaign"
      }

   ];

但是我收到以下错误。

键入'{ id:字符串;名称:字符串;}' 缺少“Campaign”类型的以下属性:createdOn、lastUpdated、createdBy、type 和 6 more.ts(2740)

标签: typescript

解决方案


如果您使可选属性可以为空,它应该可以工作。

例子:

type User = {
  firstName: string;
  lastName?: string;
};

// We can assign a string to the "lastName" property
let john: User = { firstName: "John", lastName: "Doe" };

// ... or we can explicitly assign the value undefined
let jane: User = { firstName: "Jane", lastName: undefined };

// ... or we can not define the property at all
let jake: User = { firstName: "Jake" };

推荐阅读