Код: Выделить всё
type Settings = {
enableAdvancedFeature?: boolean;
};
type Options = {
settings?: Settings;
enforceAdvancedOrder?: boolean;
};
Если параметр settings.enableAdvancedFeature имеет значение false или не определен, то EnforceAdvancedOrder должен быть неопределенным.
Вот пример желаемого поведения:
Код: Выделить всё
const validOption1: Options = {
settings: { enableAdvancedFeature: true },
enforceAdvancedOrder: true,
};
const validOption2: Options = {
settings: { enableAdvancedFeature: false },
enforceAdvancedOrder: undefined, // enforceAdvancedOrder should be undefined
};
const invalidOption: Options = {
settings: { enableAdvancedFeature: false },
enforceAdvancedOrder: true, // This should cause a TypeScript error
};
Как я могу определить тип Options для достижения такого поведения, сохраняя при этом типобезопасность? Будем очень признательны за любые предложения!
Подробнее здесь: https://stackoverflow.com/questions/793 ... d-property
Мобильная версия