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

TypeScript中set访问器函数的正确类型该如何定义?

TypeScript Set访问器无需指定返回类型

其实你不用纠结这个啦——TypeScript里的set访问器根本不允许显式指定返回类型,也完全不需要加。

咱们来掰扯清楚原因:

  • 首先,JavaScript的setter语法本质就是为赋值操作设计的(比如你写obj.parameter = "bar"),语言层面就规定了它不会返回任何值,调用者也不会去接收setter的返回结果。
  • TypeScript严格遵循JS的这个规范,所以不管你尝试给setter加void、never、undefined还是null作为返回类型,编译器都会直接报错,这是语法层面的限制。
  • 你最开始写的set parameter(value: string) { this._parameter = value; }就是完全正确的写法,TypeScript会自动识别它的返回行为,不需要额外加任何返回类型注解。

顺便提一句:哪怕你偷偷在setter里写了return语句(比如return 123),不仅调用时拿不到这个值,TypeScript还会提示你“setter不能返回值”的错误,进一步说明setter的返回逻辑是被语言严格约束的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:38:22