typescript扩展了一个不需要的接口

时间:2015-04-15 12:36:00

标签: javascript interface typescript

我有两个接口;

interface ISuccessResponse {
    Success: boolean;
    Message: string;
}

interface IAppVersion extends ISuccessResponse {
    OSVersionStatus: number;
    LatestVersion: string;
}

我想将ISuccessResponse接口扩展为Not Required; 我可以覆盖它但是还有其他选择吗?

interface IAppVersion {
    OSVersionStatus: number;
    LatestVersion: string;
    Success?: boolean;
    Message?: string;
}

我不想这样做。

4 个答案:

答案 0 :(得分:26)

有点晚了,但是Typescript 2.1引入了df <- read.table(text = "timestamp '2018-01-17 10:35:00 UTC' '2015-05-08 17:30:00 UTC' '2017-11-22 07:15:00 UTC' '2017-12-05 07:30:00 UTC'", header = T) 类型,它可以满足您的要求:

Partial<T>

答案 1 :(得分:5)

如果您希望SuccessMessage是可选的,则可以这样做:

interface IAppVersion {
    OSVersionStatus: number;
    LatestVersion: string;
    Success?: boolean;
    Message?: string;
}

无法 使用extends关键字引入ISuccessResponse界面,但随后更改其中定义的合同接口(该接口表明它们是必需的)。

答案 2 :(得分:3)

从TypeScript 3.5开始,您可以使用Omit

interface IAppVersion extends Omit<ISuccessResponse, 'Success' | 'Message'> {
  OSVersionStatus: number;
  LatestVersion: string;
  Success?: boolean;
  Message?: string;
}

答案 3 :(得分:0)

您的基本界面可以将属性定义为可选:

interface ISuccessResponse {
    Success?: boolean;
    Message?: string;
}
interface IAppVersion extends ISuccessResponse {
    OSVersionStatus: number;
    LatestVersion: string;
}
class MyTestClass implements IAppVersion {
    LatestVersion: string;
    OSVersionStatus: number;
}