如何让Ramda.is(Array)返回val is any[]类型而非unknown[]
解决Ramda.is(Array)返回类型的问题
Ramda的is函数本身支持泛型参数,你可以直接通过指定泛型让它返回val is any[]类型,无需额外封装:
// 两种写法都可行 R.is<Array<any>>(Array)(val); R.is<any[]>(Array)(val);
这样TypeScript就会将该类型断言的返回值识别为val is any[],而非默认的unknown[]。
另外你提到的自定义断言函数方案也完全可用,如果需要在多处复用,封装成工具函数会更便捷:
const isArray = (val: any): val is any[] => R.is(Array)(val); // 调用示例:isArray(someValue)
两种方式都能达成需求,泛型方式更简洁直接,封装函数则适合高频复用场景。
内容的提问来源于stack exchange,提问作者Vlad
相关产品推荐
相关产品推荐

