簡體   English   中英

接受字符串並返回字符串或接受void並返回void的函數的類型是什么?

[英]What is the type for a function that takes a string and returns a string or takes void and returns void?

我有以下功能;

const capitalize = (input) =>
    (!(typeof input === 'undefined'))
        ? input
            .split(' ')
            .map(capitalizeWord)
            .join(' ')
        : undefined

這要么接受一個字符串並返回一個字符串,要么接受未定義並返回未定義,但是從不接受一個字符串並返回未定義或接受未定義並返回一個字符串。 我的想法是類型應該是(void => void) & (string => string)但這根本不符合我想要的; Flow擔心我沒有指定要大寫輸入是字符串還是未定義的內容,而要執行的操作實際上是將其分派到正確的類型。 當我讓flow只是推斷類型時,它會推斷(void | string) => (string | void) ,這太寬泛了。 正確的簽名是什么?

您可以將泛型定義為stringvoid

const capitalize = <T: string | void>(input: T): T =>
        (!(typeof input === 'undefined')) ? input
            .split(' ')
            .join(' ')
        : input

但是,它應該返回傳遞的arg,而不是undefined 試試看

暫無
暫無

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

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