我几乎没有学习流程,但根据文档,下面的代码应该给我一个错误,因为我解构对象并将默认值分配给不是布尔值的'overrideKeyProp'。不应该这个流类型默认分配给我一个错误?
这是好的,没有任何错误:
type KeyGenCfgType = {|
topic: Topic,
keyProp?: string,
overrideKeyProp?: boolean
|};
function cfgTypeKeyGen(kGen: KeyGenCfgType) {
const { keyProp, overrideKeyProp = 1 } = kGen;
}
这让我对物业的不匹配类型overrideKeyProp错误:
type KeyGenCfgType = {|
topic: Topic,
keyProp?: string,
overrideKeyProp?: boolean
|};
function cfgTypeKeyGen({ keyProp, overrideKeyProp = 1 }: KeyGenCfgType) {
}
//number: This type is incompatible with boolean
这也给了我一个错误:
type KeyGenCfgType = {|
topic: Topic,
keyProp?: string,
overrideKeyProp?: boolean
|};
function cfgTypeKeyGen(kGen: KeyGenCfgType) {
const { keyProp, overrideKeyProp = 1, nope } = kGen;
}
// property `nope`: Property not found in object type
所以它能够识别出我试图解构出一个不属于流类型的属性我为它定义,但它不承认我没有在属性上分配正确的类型值,除非我在函数的签名中进行解构。
将代码放在问题中,而不是图像。我们无法复制图片中的粘贴文字。 – epascarello
@epascarello完成。我不知道我在想什么。我还添加了其他行为示例。 – SirMyztiq