[英]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.