【发布时间】:2021-12-25 21:51:59
【问题描述】:
要配置我的模块,用户必须从配置文件中导出一个函数:像这样
export default (foo, bar, baz) => {}
由于这些都是复杂类型,为了让事情更简单一些,我想添加它们可以与 JSDoc 一起使用的类型。
现在,以下内容功能齐全,但有点重复。
/**
* @param {import('module').Foo} foo
* @param {import('module').Bar} bar
* @param {import('module').Baz} baz
*/
export default (foo, bar, baz) => {}
理想情况下,我只想从import('module') 创建一个 typedef,例如:
/**
* @typedef {import('module')} Module
*
* @param {Module.Foo} foo
* @param {Module.Bar} bar
* @param {Module.Baz} baz
*/
export default (foo, bar, baz) => {}
虽然这似乎不起作用,但有没有办法让它发挥作用?真正的函数有 6 个参数,而不是 3 个,所以import('module') 一行一行的说起来有点可笑。
有没有办法得到这种行为?如果需要,我可以编辑 TS,现在它只是简单的export type Foo... 等。
【问题讨论】:
-
我不是很清楚你的问题。但是,我认为在导入期间使用别名可能会解决您的问题。对于默认导出,您可以使用
import alias from 'module';之类的内容。然后使用您喜欢的别名调用这些成员。 -
@cindy50633 您需要在 JSDoc 中使用动态导入。您不能使用这样的导入类型。据我所知,您也不能默认导出多种类型,因此无论如何这都行不通。您当然可以使用
import * as module from 'module',但这不适用于 JSDoc,所以没关系。
标签: typescript jsdoc