mam ten interfejs:Recursive Częściowa <T> w maszynopisie 2,1
export interface UserSettings
{
one: {
three: number;
four: number;
};
two: {
five: number;
six: number;
};
}
... i chcą przekształcić go w ten sposób:
export interface UserSettingsForUpdate
{
one?: {
three?: number;
four?: number;
};
two?: {
five?: number;
six?: number;
};
}
... ale Partial<UserSettings>
produkuje to:
{
one?: {
three: number;
four: number;
};
two?: {
five: number;
six: number;
};
}
Czy można używać typów odwzorowanych, aby wszystkie właściwości na wszystkich głębokościach były opcjonalne, czy też musisz ręcznie stworzyć interfejs?
Dobrze, dzięki! Jeśli jednak zmienię interfejs 'Bar' na' interface Bar {names: string []; } 'następnie VS Code mówi mi, że' names' ma typ 'RecursivePartial' zamiast' string [] '. jakieś pomysły? –
Podejrzewam, że jest to bieżące ograniczenie: zobacz https://github.com/Microsoft/TypeScript/pull/12114#issuecomment-259776847, https://github.com/Microsoft/TypeScript/issues/12424 i https: // github.com/Microsoft/TypeScript/issues/13257 –
Będę oglądać te problemy i aktualizować tę odpowiedź po ich rozwiązaniu. –