我是typescript的新手,我想知道是否有一种方法可以根据另一种类型的值来制作所需的类型:
type TextInput = {
isValid?: boolean;
validMessage?: string;
}
如果isValid
为真,是否有可能使validMessage
为必需?
您需要使用有区别的联合:
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
}
}
游乐场
参见相关文档