gpt4 book ai didi

javascript - 类变压器 : Property that is an object with properties that is another class

转载 作者:行者123 更新时间:2023-12-05 03:18:14 24 4
gpt4 key购买 nike

class ClassA {
x: number;
y: number;
sum(): number {
return this.x + this.y;
}
}

class ClassB {
@Type(() => ClassA)
z: {[key: string]: ClassA};
}

const b = plainToInstance(ClassB, plainObj);
const z = b.z[key];
const s = z.sum();

错误是因为 b.z 没有正确转换为 ClassA 的键值对,它没有 sum()。

正确的做法是什么?

plainObj = {z: {key1: {x: 1, y: 2}, key2: {x: 10, y: 20}}

最佳答案

终于让它工作了,docs提到 Map 的用法,但我无法让它工作。事实证明,您还需要在 tsconfig.json 中设置 "emitDecoratorMetadata": true

你需要改变你的ClassB

class ClassB {
@Type(() => ClassA)
z: Map<string, ClassA>;
}

那么它将完美地工作。

关于javascript - 类变压器 : Property that is an object with properties that is another class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73795413/

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