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

TypeScript报TS1005: '?' expected错误是什么原因导致的?

错误原因

你代码第2行定义resolve方法的返回值时,使用了不完整的条件类型语法:
any extends SCResolvable 属于条件类型的前半段判断逻辑,TypeScript 中条件类型的完整语法是 类型A extends 类型B ? 条件成立时的类型 : 条件不成立时的类型,必须包含?和两个分支的返回类型定义,所以编译器检测到你写了extends做条件判断后,会预期后续出现?,就抛出了TS1005: '?' expected的报错。

解决方案

根据你的实际需求选对应修改方式:

  • 如果你只是想声明resolve方法返回SCResolvable类型,直接修改返回类型声明即可:
    resolve(scope: any): SCResolvable;
    
  • 如果你确实需要通过条件类型动态匹配返回值类型,需要补全条件类型的完整结构,同时搭配泛型使用:
    // 示例:入参如果是SCResolvable类型返回any,否则返回SCResolvable,可根据你的实际需求调整两个分支的类型
    resolve<T>(scope: T): T extends SCResolvable ? any : SCResolvable;
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 17:27:05