繁体   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