У меня есть интерфейс в моем приложении:
interface Asset {
id: string;
internal_id: string;
usage: number;
}
это - часть интерфейса сообщения:
interface Post {
asset: Asset;
}
У меня также есть интерфейс, который является для проекта сообщения, где объект актива мог бы только быть частично создан
interface PostDraft {
asset: Asset;
}
Я хочу позволить a PostDraft
объект иметь частичный актив возражает при тихой проверке типов на свойствах, которые являются там (таким образом, я не хочу просто выгружать его с any
).
Я в основном хочу способ смочь генерировать следующее:
interface AssetDraft {
id?: string;
internal_id?: string;
usage?: number;
}
полностью не переопределяя Asset
интерфейс. Существует ли способ сделать это? В противном случае, что было бы умный способ расположить мои типы в этой ситуации быть?
В дополнение к ответ David Sherret всего несколько строк с моей стороны, как это может быть реализовано непосредственно без Partial<T>
тип для лучшего понимания предмета.
interface IAsset {
id: string;
internal_id: string;
usage: number;
}
interface IPost {
asset: IAsset;
}
interface IPostDraft {
asset: { [K in keyof IAsset]?: IAsset[K] };
}
const postDraft: IPostDraft = {
asset: {
usage: 123
}
};