JSDoc TypeScript 函数的通用类型定义

问题描述 投票:0回答:1

我在

mjs
中使用 JSDoc 来模仿我拥有的
ts
功能。
mjs
使用 TypeScript 编译器进行检查。来自
ts
文件的原始函数(重载)是这样的:

export function inline<TypeS extends boolean, TypeT = unknown, TypeF = undefined>(S?: TypeS, T?: TypeT, F?: TypeF): TypeS extends true ? TypeT : TypeF {}

export function inline<TypeS extends boolean, TypeT = unknown, TypeF = undefined>(
    S?: TypeS,
    T?: TypeT,
    F?: TypeF,
): unknown {}

我正在尝试类似的东西:

/**
 * @callback Inline
 * @param {TypeS} S
 * @param {TypeT} T
 * @param {TypeF} F
 * @return {TypeS extends true ? TypeT : TypeF}
 * @type {Inline}
 */
export function inline(
    S,
    T,
    F,
) {}

这几乎是我所期望的,但是,我没有泛型类型和泛型的默认值。有没有办法用 JSDoc 正确地做到这一点?

我用来尝试解决的内容是:

但是逐个尝试,先不要过载,然后,如果可能的话,可能会过载(我真的不太了解这个东西,这对我来说很棘手)

typescript jsdoc tsd-jsdoc
1个回答
0
投票

你忘了定义模板

/**
 * @template {boolean} TypeS
 * @template {unknown} TypeT
 * @template {undefined} TypeF
 * @param {TypeS} [S]
 * @param {TypeT} [T]
 * @param {TypeF} [F]
 * @return {TypeS extends true ? TypeT : TypeF | unknown}
 */
export function inline(
    S,
    T,
    F,
) { }
© www.soinside.com 2019 - 2024. All rights reserved.