Ale*_*dro 3 javascript typescript
我是打字稿的新手,我想知道是否有一种方法可以根据另一种类型的值来创建所需的类型:
type TextInput = {
isValid?: boolean;
validMessage?: string;
}
Run Code Online (Sandbox Code Playgroud)
是否可以将validMessageifisValid变为 true ?
您需要使用受歧视的工会:
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
}
}
Run Code Online (Sandbox Code Playgroud)
另请参阅相关文档