我有一个来自库的父类,具有一些属性和一个具有相同属性但类型不同的Parent子类。Child
class Parent {
propertyA: string;
propertyB: string;
propertyC: string;
constructor() {
this.propertyC = '';
}
}
class Child extends Parent {
propertyA: number;
propertyB: number;
}
Run Code Online (Sandbox Code Playgroud)
我试图从父类重写多个属性的类型,但出现错误ts(2416)。
类型“number”不可分配给类型“string”。
我可以将Parent类更改为接口并使用它Omit<>来删除propertyA,propertyB但该类位于库中。
我无法使用组合(PropertyParent: Parent作为Child属性)或更改属性名称,因为Child将用于描述现有数据(想象一个具有三个属性的表)作为firebase库函数的通用类型(请参阅FirebaseFirestore.CollectionReference<T>类型)。
还有其他方法吗?
我有一个 ID 来标识我的每一行、一个article_ID、一个supplier_ID 和一个库存。
+----+------------+-------------+-------+
| ID | article_ID | supplier_ID | stock |
+----+------------+-------------+-------+
| 1 | 1 | 1 | 18 |
| 2 | 1 | 2 | 1 |
| 3 | 1 | 3 | 20 |
| 4 | 2 | 1 | 5 |
| 5 | 2 | 2 | 40 |
| 6 | 3 | 1 | 56 |
| 7 | 3 | 3 | 7 |
| 8 …Run Code Online (Sandbox Code Playgroud) 溢出社区大家好,我正在努力解决 Lombok 的继承问题。我试图在子类上添加注释@AllArgsConstructor,@NoArgsConstructor以便使用父 lombok 构造函数,但收到错误"Duplicate method Child()"。
家长班级:
@ToString
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@SuperBuilder
public class Parent {
private String propertyA;
private String propertyB;
}
Run Code Online (Sandbox Code Playgroud)
儿童班:
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class Child extends Parent {
@Override
public void setPropertyA(String propertyA) {
this.propertyA(StringUtils.upperCase(propertyA));
}
}
Run Code Online (Sandbox Code Playgroud)
错误信息:
Java Child 类型中存在重复的 Child() 方法 (67109219)
感谢@rentox98的回复,我了解到我的子类上的 ArgsConstructor 始终为空,从而产生两个相同的构造函数。
有没有一种 Lombok 方法可以根据父 lombok ArgsConstructors 在我的子类上生成 ArgsConstructors ?