我幾乎沒有學習流程,但根據文檔,下面的代碼應該給我一個錯誤,因爲我解構對象並將默認值分配給不是布爾值的'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