我可以将 typescript 实用程序类型与 jsdoc 一起使用吗?
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
*/
当我用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
*/