typescript extend an interface as not required
If you want Success
and Message
to be optional, you can do that:
interface IAppVersion {
OSVersionStatus: number;
LatestVersion: string;
Success?: boolean;
Message?: string;
}
You can't use the extends
keyword to bring in the ISuccessResponse
interface, but then change the contract defined in that interface (that interface says that they are required).
A bit late, but Typescript 2.1 introduced the Partial<T>
type which would allow what you're asking for:
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