У меня есть следующие типы:
type Settings = { enableAdvancedFeature?: boolean; }; type Options = { settings?: Settings; enforceAdvancedOrder?: boolean; };
Я хочу сделать enforceAdvancedOrder свойство является логическим значением только тогда, когда settings.enableAdvancedFeature является true.
Если settings.enableAdvancedFeature является false или undefined, затем enforceAdvancedOrder должно быть undefined.
Вот пример желаемого поведения:
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 };<code> Я попытался определить условный тип для параметров, но не смог понять, как обеспечить эту зависимость между вложенными свойствами. Как я могу определить тип Options, чтобы добиться такого поведения, сохраняя при этом его безопасность? Любые предложения будут очень признательны!