typescript - 如何使用 JSDoc 传递泛型类型参数?

标签 typescript jsdoc

在放弃之前,我想在这里试一试。
我有一个定义文件,其类型如下:

/**
 * My json decode function, in reality very different
 * implementation (class like) but it works as an example
 */
  function decodeJSON<T = unknown>(str: string): T;
如果我想在 TypeScript 中使用这个泛型,我会做类似的事情
下列
const value = decodeJSON<number[]>("[1,2,3]"); // return type will be number[]
然而,在我的实际代码中,我不能使用 TypeScript,它只是用于开发目的的类型,而且我似乎无法找到一种方法来告诉我的编辑器我传递给泛型参数的类型是什么,以便我得到正确的类型信息。
我尝试使用 JSDoc 来指定泛型的参数可能与 TypeScript 可以使用的方式相同
// I was expecting JSDoc to understand something like this, but it doesn't
/** @type {decodeJSON<number[]>} */
const value = decodeJSON("[1,2,3]"); // Type inference will be unknown
但它不起作用。我真的不在乎运行时的结果是什么,我对已经实现的结果进行了健全性检查。我只是想让我的编辑器给我关于通用函数结果的类型提示,使我的工作(这个函数在我的应用程序中大量使用)更容易
我的编辑器是 WebStorm 以防万一,但这似乎是 JSDoc 的一般限制

最佳答案

您可以使用 Jsdoc 传递泛型类型,如下所示:

const value = decodeJSON(/** @type {number[]} */("[1,2,3]"))

关于typescript - 如何使用 JSDoc 传递泛型类型参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65689718/

相关文章:

javascript - 如何保证传递的对象键可以使用 Typescript 进行调用?

javascript - 如何正确注释属于 PhpStorm 中对象的 JavaScript 函数

javascript - jsdoc问题: Full path to source file is displayed (unwantedly)

typescript - 通过 TypeScript API 或 ts-morph 从模块中获取所有可能的导出

reactjs - Typescript上传目录,类型上不存在属性 'directory'

javascript - 如何使用 JSDoc 记录 CoffeeScript 源代码?

google-apps-script - Google Apps 脚本库自动完成

javascript - JSDoc 可以记录动态生成的方法吗?

javascript - Angular 没有输入时如何将值设置为0

jquery promise 和 typescript