打字稿。如何指定对象文字属性子集的类型?

时间:2019-09-12 07:49:44

标签: typescript

在“具有此类型的属性”中指定类型,但可能具有我们不关心的其他属性。

我有两个界面:

interface IForm {
 form: {
   name: string;
   email: string;
   picture: File | null;
 }
}

和一个子界面

interface IUpload {
 form {
   picture: File | null;
 }
}

我将如何在IUpload接口中指定form变量不应该完全相同,而应该具有该字段,以便在这种情况下extends关系可以工作。 IForm extends IUpload

对不起,如果我没有正确提出问题。 预先感谢!

2 个答案:

答案 0 :(得分:1)

您的状态很好,我刚刚完成了代码并更正了一些错字:) IForm可以扩展IUpload,因为它具有picture属性。

interface IForm extends IUpload {
    form: {
        name: string;
        email: string;
        picture: File | null;
    }
}

export interface IUpload {
    form:
    {
        picture: File | null;
    }
}

答案 1 :(得分:0)

我认为这可能对您有用:

interface IForm {
  name: string;
  email: string;
  picture: File | null;
}

然后在您的IUpload中

interface IUpload extends Partial<IForm> {
  other: things;
}