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