有没有办法在Typescript中实现类似的目的?
class Coin {
last_scraped: number;
constructor(public { gecko_id: string, symbol: string }) {}
}
类Coin
在哪里包含gecko_id: string
,symbol: string
的对象,并将它们作为公共属性分配给类实例?
答案 0 :(得分:1)
是的,您可以这样做:
constructor(args: {gecko_id: string, symbol: string }) {
return Object.assign(this, args);
}
答案 1 :(得分:0)
我可以想到的两种方式之一:
首先,调用者需要从对象获取值并将其作为参数传递。
class Coin {
last_scraped: number;
constructor(public gecko_id: string, public symbol: string) {}
}
第二,在构造函数中完成工作:
interface I {
gecko_id: string;
symbol: string;
}
class Coin {
last_scraped: number;
gecko_id: string;
symbol: string;
constructor(object: I) {
this.gecko_id = object.gecko_id;
this.symbol = object.symbol;
}
}
答案 2 :(得分:0)
听起来,您想要一个将接收任何对象并返回具有所有相同字段以及类型为last_scraped
的名为number
的新字段的新对象的函数。
type Coin<T> = { last_scraped: number } & T;
function newCoin<T>(T x): Coin<T> {
return { last_scraped: 0, ...x }
}