【发布时间】:2021-08-01 17:22:38
【问题描述】:
我想知道是否可以使用 JSDoc cmets 从第二个泛型类型中引用第一个泛型类型,例如utility-types 包将Optional<T, K> 定义为:
type Optional<T extends object, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
我尝试在 JSDoc cmets 中重新创建这种类型:
/**
* @template {object} T
* @template {keyof T} K
*
* @typedef {Omit<T, K> & Partial<Pick<T, K>>} Optional
*/
此代码不起作用,TypeScript 在第二个 @template 处输出 TS2304: Cannot find name 'T'.。为了使这种类型正常工作,K 必须 受到限制,因为 Pick<T, K> 要求 K 为 keyof T。
我的 TypeScript 版本是 4.3.5
【问题讨论】:
标签: typescript generics jsdoc