Tôi có các lớp sau trong TypeScript:
class bar {
length: number;
}
class foo {
bars: bar[] = new Array();
}
Và sau đó tôi có:
var ham = new foo();
ham.bars = [
new bar() { // <-- compiler says Expected "]" and Expected ";"
length = 1
}
];
Có cách nào để làm điều đó trong TypeScript không?
CẬP NHẬT
Tôi đã nghĩ ra một giải pháp khác bằng cách đặt một phương thức để trả về chính nó:
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;
}
}
vì vậy bạn có thể khởi tạo nó như sau:
var ham = new foo();
ham.setBars(
[
new bar(1).height(2),
new bar(3)
]);
[ {length: 1} ]không phải là trường hợp của thanh nhưng nếu được hỗ trợ,new bar() { length = 1 }sẽ là trường hợp của thanh. Có lẽ chúng ta nên đưa ra một đề xuất tính năng cho việc này?