一个公司可以有一个Pia协议,但并不需要有一个。所以,我有下面的. ts类来演示这一点。
我只需要执行let submitObject = new Company();
,然后得到一个Company对象,它具有默认的空值,我可以根据表单中的内容覆盖这些空值。
- 当我在Company中设置"id"时,我希望它也使用相同的值设置子对象(Pia)的"companyId"。**是否有方法使它自动执行此操作,或者是否需要在每次设置完新Company对象的值后手动执行
submitObject.pia.companyId = submitObject.id
?
- 当我在Company中设置"id"时,我希望它也使用相同的值设置子对象(Pia)的"companyId"。**是否有方法使它自动执行此操作,或者是否需要在每次设置完新Company对象的值后手动执行
Company.ts
import { Pia } from "./Pia";
export class Company {
id: number = null;
name: string = null;
address: string = null;
authRequired: boolean = false;
piaRequired: boolean = false;
pia: Pia = new Pia;
}
Pia.ts
export class Pia {
companyId: number = null;
agreementNumber: string = null;
effectiveDate: string = null;
expirationDate: string = null;
}
- 我所尝试的**
使用extends
/inheritance(我很确定我做错了)
Company.ts
import { Pia } from "./Pia";
export class Company {
constructor(public companyId: number) {
this.id = companyId;
}
id: number = null;
name: string = null;
address: string = null;
authRequired: boolean = false;
piaRequired: boolean = false;
pia: Pia = new Pia(this.companyId);
}
Pia.ts
import { Company } from "./Company";
export class Pia extends Company {
// constructor(companyId: number) {
// super(companyId);
// }
// companyId: number = super.id;
companyId: number = null;
agreementNumber: string = null;
effectiveDate: string = null;
expirationDate: string = null;
}
1条答案
按热度按时间qvk1mo1f1#
您可以使用getter/setter,但如果您有更多的属性要“链接”,这可能会失控:
注意,它不是真正的“链接”,只是Company的
id
成员充当外部代码和内部Pia对象的companyId
之间的代理。