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

为何出现‘字符串无法赋值给iGreet’的TypeScript错误?

错误原因分析

你定义的iGreet是一个函数类型接口,它要求符合这个接口的类型必须是「接收string参数、返回string的函数」。

但你的C.greet方法,声明返回类型是iGreet,实际却返回了一个拼接后的字符串("Hello, " + this.greeting + " " + p),字符串类型和函数类型完全不匹配,TypeScript的类型检查自然会抛出「字符串无法赋值给iGreet」的错误。

如果你的需求是让greet返回拼接后的字符串,直接把greet的返回类型改成string即可:

greet(p: string): string {
  return "Hello, " + this.greeting + " " + p;
}

如果确实需要让greet返回符合iGreet的函数,写法应该是这样:

greet(p: string): iGreet {
  return (name: string) => `Hello, ${this.greeting} ${p}, nice to meet ${name}`;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 06:20:28