繁体   English   中英

我可以在 jsdoc 中使用 typescript 实用程序类型吗?

[英]Can I use typescript utility types with jsdoc?

当我将 jsdoc 用于 vscode 时。 我看到我可以使用 typescript 实用程序类型。 例如:

/**
 * Func 1
 * @param {number} x 
 */
function func1(x) {
    return [x, x]
}

/**
 * Func 2
 * @param {ReturnType<func1>} x  // Here !
 */
function func2(x) {
    return x[0];
}

所以我想知道这是否是 jsodc 的正确用法。 如果有一种方法可以创建我自己的类型转换器,例如创建一个来解开承诺解析类型。

创建一个新的类型转换器来打开 promise :

/**
 * @template T
 * @typedef  {T extends Promise<infer Value> ? Value : T} PromiseValue
 */

或者使用type-fest

/**
 * @template T
 * @typedef {import('type-fest').PromiseValue<T>} PromiseValue 
 */

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM