gpt4 book ai didi

typescript - 如何为 TypeScript 中类的所有属性赋值?

转载 作者:行者123 更新时间:2023-12-05 08:53:53 25 4
gpt4 key购买 nike

我有一个具有私有(private)属性的类:

class A implements IA {
private id: number;
private name: string;

constructor(obj: IA) {
// Set here properties from obj
}
}

我想在创建实例 A 时传递带有初始化值的对象 IA,并仅重新填充我传递的类中的属性。

new A({id: 1})new A({id: 1, name: "O"})

如何在 TypeScript 中执行此操作?

最佳答案

最简单的方法就是使用 Object.assign。它只会复制构造函数参数中指定的文件。

interface IA{
id? : number;
name? : string
}

class A {
private id: number;
private name: string;

constructor(obj: IA) {
Object.assign(this, obj)
}
}

注意 我从类中删除了实现,因为私有(private)字段不能是接口(interface)的实现

关于typescript - 如何为 TypeScript 中类的所有属性赋值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52136739/

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