我有两个接口;
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;
}
我不想这样做。
答案 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)
如果您希望Success
和Message
是可选的,则可以这样做:
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;
}