簡體   English   中英

用於使用默認值解構函數參數的flowType

[英]flowType for destructuring Function's parameters with default values

在這種情況下,我們有沒有不破壞類型檢查的解決方法?

// Error
function foo({name = 42}: {name: ?number}) {
  //          ^ null or undefined [1] is incompatible with number [2].
  console.log(name);
}

錯誤的解決方案阻止流程檢查默認值類型。

// Correct
const foo = ({name = true}: $Subtype<{name: ?string}>) => {
  //                 ^ flow does not check this
  console.log(name);
}

還能保持類型安全的唯一解決方法是不使用解構:

function foo(props: {name: ?number}) {
    let name = props.name === undefined ? 41 : props.name;
    console.log(name);
}

我們具有用於添加類型的舊代碼庫,因此我們不希望更改功能。

分解參數而不是標題中的內容-對我來說很棒。

function foo(arg: {name: ?number}) {
  const { name = 42 } = arg;
  // the default value is only used for undefined values.
  console.log((name: (number | null)));
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM