我有两个接口;

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

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

我想在不需要时扩展ISuccessResponse接口;

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

我不想这么做.

推荐答案

虽然有点晚了,但Typescript 2.1引入了Partial<T>类型,可以满足您的要求:

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

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

declare const version: IAppVersion;
version.Message // Type is string | undefined

Typescript相关问答推荐

如何一般设置映射类型的值

如何推断哪个特定密钥与泛型匹配?

在键和值为ARGS的泛型函数中未正确推断类型

将对象属性转换为InstanceType或原样的强类型方法

更新为Angular 17后的可选链运算符&?&问题

Angular 错误NG0303在Angular 项目中使用app.Component.html中的NGFor

如何编写一个类型脚本函数,将一个对象映射(转换)为另一个对象并推断返回类型?

表单嵌套太深

类型TTextKey不能用于索引类型 ;TOption

为什么Typescript不能推断类型?

为什么在leetcode问题的测试用例中,即使我确实得到了比预期更好的解决方案,这段代码也失败了?

如何将父属性类型判断传播到子属性

在类型脚本中将泛型字符串数组转换为字符串字母并集

抽象类对派生类强制不同的构造函数签名

在Reaction中折叠手风琴

编剧- Select 动态下拉选项

如何填写Partial的一些属性并让类型系统知道它?

从泛型对象数组构造映射类型

基于参数的 TS 返回类型

在Typescript 无法正常工作的 Three.js 中更新动画中的 GLSL 统一变量