Typescript需要基于值的类型



我是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
}
}

游乐场

参见相关文档

相关内容

  • 没有找到相关文章

最新更新