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

VS Code中JSDocs调用函数初始化变量时忽略@returns的原因与解决办法

解决VS Code中JSDocs忽略变量@returns指令的问题

当你通过调用其他函数初始化变量时,直接给变量加@function和@returns不会覆盖VS Code的类型推断——这两个标签是用来标注函数自身定义的,而非变量的类型。要在不修改functionGetter的前提下修正这个问题,直接用@type标签给变量指定类型即可:

const functionGetter = () => () => { return false; };

/** @type {() => string} */
const fn = functionGetter();

原理说明

  • @type是JSDoc中直接指定变量类型的标签,优先级高于表达式的自动类型推断。这里() => string明确告诉VS Code:fn是一个无参数、返回值为string类型的函数。
  • 你之前用的@function+@returns组合,VS Code会优先从functionGetter()的原始返回值(即() => boolean)来推断fn的类型,所以你的标注被忽略了。

这样修改后,VS Code就会按照你指定的类型识别fn,同时不会影响functionGetter本身的类型声明。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 12:07:07