You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为输出设置boolean类型?及TypeScript代码类型错误修复

问题解答

1. 如何为输出设置boolean类型?

在TypeScript中,直接在函数参数列表末尾通过: boolean标注返回类型,就能为输出设置boolean类型:

  • 普通函数示例:
const isPositive = (num: number): boolean => num > 0;
  • 用类型别名定义函数类型时:
type BooleanReturnFunc = (input: string) => boolean;
const isEmpty: BooleanReturnFunc = (str) => str.length === 0;

2. 代码问题分析与错误修复

问题点

  1. 类型定义与实际实现不匹配:Filter类型别名规定函数返回单个A类型值,但arr.filter(f)实际返回的是Array<A>类型数组,两者类型冲突。
  2. 回调函数返回类型不符合要求:Filter要求回调函数f返回A类型(此处调用时A为number),但传入的回调x => x > 3 ? true : false返回的是boolean,因此触发Type 'boolean' is not assignable to type 'number'的类型错误。

修复方案

修正Filter的类型定义,让回调函数返回boolean(符合数组filter方法对回调的要求),同时将函数返回值类型改为Array<A>:

export type Filter = <A>(f: (x: A) => boolean, arr: Array<A>) => Array<A>;

const filter: Filter = (f, arr) => arr.filter(f);

// 回调可以简化,效果一致
filter(x => x > 3, [1, 2, 3, 4, 5]);

修复后,类型系统能正确识别回调的返回值类型,函数返回值也和arr.filter的实际输出匹配,错误即可解决。


内容的提问来源于stack exchange,提问作者Sahar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 17:05:06