Soy nuevo en mecanografiar y me preguntaba si hay una manera de hacer que un tipo sea obligatorio en función del valor de otro tipo:
type TextInput = { isValid?: boolean; validMessage?: string; } ¿Es posible hacer que se requiera validMessage si isValid se vuelve verdadero?
Necesitas usar uniones discriminadas:
type Valid = { isValid: true; validMessage: string } type Invalid = { isValid: false; } type TextInput = Valid | Invalid const foo = (props: TextInput) => { if (props.isValid) { props.validMessage // ok } else { props.isValid // false props.validMessage // error } }Ver también documentos relacionados