【发布时间】:2021-01-08 12:33:20
【问题描述】:
我正在尝试扩展 ISampleB 接口并从中省略一些值,如下所示。我不知道我是否做错了什么
export interface ISampleA extends Omit<ISampleB, 'fieldA' | 'fieldB' | 'fieldC' | 'fieldD' | 'fieldE'> {
fieldB?: string
fieldA?: string
fieldC?: string
fieldD: number
fieldE?: number
}
我的招摇生成器抛出如下错误
There was a problem resolving type of 'ISampleA'.
ode_modules/typescript-rest-swagger/dist/metadata/methodGenerator.js:83
throw new Error("Error generate parameter method: '" + controllerId.text + "." + methodId.text + "' argument: " + parameterId.text + " " + e);
Error: Error generate parameter method: 'abc' argument: fields Error: No type found for Omit
【问题讨论】:
-
我实际上不确定抛出的错误是否来自于此,但我认为从接口中省略属性并在其扩展接口中重新定义它们是行不通的。
-
为什么不将实际的共性提取到它们都扩展的第三个接口?
-
@jonrsharpe - 我无法更改主界面,因为它在很多地方使用,并且必须修改大量测试用例。
-
为什么在哪里使用它很重要? ISampleB 仍然是相同的结果,它只是让 ISampleA 更容易定义。
-
@jonrsharpe - 当然让我试试。我的做法有问题吗?
标签: node.js typescript swagger