簡體   English   中英

區分打字稿中通用聯合的部分

[英]Differentiate parts of generic union in typescript

我想實現以下功能

const foo = <S>(newState: S | ((prevState: S) => S)) => {...}

所以它需要類型S新狀態或從舊狀態產生新狀態的函數。

我如何區分實現中的這些選項? 我假設typeof newState === 'function'將不起作用,因為S也可以是一個函數。

我正在使用打字稿,但解決方案可能更多地與 JS 和 TS 相關。

正如您所提到的,您可以使用typeof來解決您的問題,例如:

if(typeof newState === 'function') {
    newState();
} else {
    // do whatever you want
}

暫無
暫無

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

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