我在TypeScript中有以下类:
class bar {
length: number;
}
class foo {
bars: bar[] = new Array();
}
然后我有:
var ham = new foo();
ham.bars = [
new bar() { // <-- compiler says Expected "]" and Expected ";"
length = 1
}
];
有没有一种方法可以在TypeScript中做到这一点?
更新
我想出了另一个解决方案,让一个set方法返回自己:
class bar {
length: number;
private ht: number;
height(h: number): bar {
this.ht = h; return this;
}
constructor(len: number) {
this.length = len;
}
}
class foo {
bars: bar[] = new Array();
setBars(items: bar[]) {
this.bars = items;
return this;
}
}
因此可以如下初始化它:
var ham = new foo();
ham.setBars(
[
new bar(1).height(2),
new bar(3)
]);
5条答案
按热度按时间zbdgwd5y1#
没有像JavaScript或TypeScript中的对象那样的字段初始化语法。
选择1:
备选方案二:
dfty9e192#
如果你真的想有命名参数,并让你的对象成为你的类的示例,你可以这样做:
here也是typescript issue tracker上的相关项。
hs1ihplo3#
一个简单的解决方案可能是:
rwqw0loc4#
如果你想在一个页面上添加额外的项目,你可能需要创建一个Map数组。这就是我如何创建一个map数组,然后向其中添加结果:
其中 product.ts 看起来像...
x759pob25#
另一个解决方案: