gpt4 book ai didi

typescript - Mongoose 的 loadClass() 和 TypeScript

转载 作者:行者123 更新时间:2023-12-04 01:47:24 25 4
gpt4 key购买 nike

Mongoose 接受 ES6 class作为架构的基础。

该链接中的示例:

class PersonClass {

get fullName() {
return `${this.firstName} ${this.lastName}`; // compiler error
}

}

PersonSchema.loadClass(PersonClass);

模式的属性未在类中定义,因此 TypeScript 编译器说:

Property firstName does not exist on type PersonClass.

黑客是使用虚拟构造函数:

constructor(readonly firstName: string, readonly lastName: string) { }

然而,这是 hack,更难维护。

有没有其他方法可以做到这一点,而不需要黑客攻击?

最佳答案

诀窍是使用 this IPerson 注释:

get fullName(this IPerson) {
return `${this.firstName} ${this.lastName}`;
}

其中 IPerson 是该架构的相应接口(interface)。

关于typescript - Mongoose 的 loadClass() 和 TypeScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54723586/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com