猫鼬接受ES6 class作为架构的基础。
该链接的示例:
class PersonClass {
get fullName() {
return `${this.firstName} ${this.lastName}`; // compiler error
}
}
PersonSchema.loadClass(PersonClass);
架构的属性未在类中定义,因此TypeScript编译器会说:
PersonClass类型上不存在属性名字。
技巧是使用虚拟构造函数:
constructor(readonly firstName: string, readonly lastName: string) { }
但这是黑客,而且很难维护。
还有其他方法可以做到这一点,而不会被黑客入侵吗?
答案 0 :(得分:1)
技巧是使用this IPerson
批注:
get fullName(this IPerson) {
return `${this.firstName} ${this.lastName}`;
}
IPerson
是该架构的相应接口。