1
我想定義就像flowtype:如何通過參數計數/類型來重載函數返回類型?
function first(n?: number) {
if (number === undefined) {
// returns a single Item
return items[0];
}
// returns an array of Item
return items.slice(0, n);
}
一個重載函數,以便這些語句類型檢查:
const item: Item = first(); // no args, so return type is Item
const items: Array<Item> = first(5); // number arg, so return type is Array<Item>
流動人都知道,first
第一個電話會導致n === undefined
(因爲它會抱怨如果undefined
對於n
無效)並且它理解它將採用if分支,所以我認爲它可以推斷返回類型爲Item
,但是我試過的所有東西都可以讓任何事情通過或總是失敗。
任何想法,如果這是可能的?在此先感謝互聯網。
是啊...那工作!我不能說我真的明白你爲什麼需要'任何'演員......但它的工作。謝謝。我也不知道那個「tryflow」頁面,這對於擺弄非常有用。 – nrser
只是一個警告,通過任何鑄造是不安全的。你不會得到返回值的類型檢查。 –