【发布时间】:2021-02-14 06:21:11
【问题描述】:
我要解决的是在 Typescript 中声明依赖注入的问题。
我熟悉JSDoc,可以使用typedef import('./classModule.js').default myClass。
简单示例:假设我们在自己的模块文件中有多个类。 A类和B类。 我们要声明类 B 需要一个类 A 的实例作为其构造函数中的依赖项。
// A.js
export default class A {
//...
}
// B.js
// With jsdoc I can do
/**
* @typedef {import ('./A').default} A
*/
export default class B {
/**
* @param {A} a
*/
constructor (a) {
this.a = a
}
}
这很酷,它只是一个评论。没有实际的导入发生。
如何在 Typescript 中执行此操作?
据我所知,我可以使用typeof A 作为类型。
问题是我需要为此实际导入类模块,但这不是我想要做的。
我宁愿导入一些从我的类派生的接口。 因此在运行时,没有任何真正的依赖或导入。
【问题讨论】:
标签: typescript types dependency-injection jsdoc