【发布时间】:2021-01-18 15:36:09
【问题描述】:
我有一个AdonisJS 项目,并且遇到了关于声明文件的问题。 Adonis 的 IoC 容器利用 ES6 import loader hooks 来解决依赖关系。例如,如果我想导入我的 User 模型,它看起来像:
import User from "@ioc:App/Models/User";
但是,由于 Adonis 使用 @ioc: 前缀,webstorm 对类型一无所知。为了解决这个问题,您可以在/contracts 目录中声明一个打字稿定义文件,如下所示:
declare module "@ioc:App/Models/User" {
}
但这仍然没有真正的帮助,因为现在我的User 模型没有任何输入信息。
我想做的是扩展基类 Model 的定义,"@ioc:Adonis/Lucid/Model",对于 "@ioc:App/Models/Users",可以选择添加任何可能的属性或方法包含在该模型类中。到目前为止,我尝试过这样的事情,但它似乎并没有达到我想要的效果:
declare module "@ioc:App/Models/User" {
import Model from "@ioc:Adonis/Lucid/Model";
export default Model;
}
我对打字稿还很陌生,所以如果这相当简单并且我遗漏了一些东西,我深表歉意。
【问题讨论】:
标签: typescript adonis.js