【发布时间】:2016-09-06 15:29:27
【问题描述】:
我想实现一个类似数组的类:
- 接受数组作为构造函数的参数
- 应该是可迭代的并且具有所有内置数组的方法
- 有一些自定义方法
- 应该可以扩展其他类
我是这样看的:
class BaseModel {
arr: Array;
constructor(arr: Array<any>) { // <= req. #1
this.arr = arr;
}
serialize(arr) { // <= req. #3
this.arr = arr;
}
}
class ListModel extends BaseModel { // <= req. #4
constructor(arr: Array<any>) { // <= req. #1
super(arr);
}
sayHello() { // <= req. #3
console.log('hello');
}
}
let list = new ListModel([1,2,3]);
list.sayHello();
// expected output:
// 'hello'
list.push(4); // <= req. #2
for (let a of list) { // <= req. #2
console.log(a);
}
// expected output:
// 1
// 2
// 3
// 4
list.serialize([2,3]);
for (let a of list) {
console.log(a);
}
// expected output:
// 2
// 3
打字稿可以吗?我寻找解决方案,但没有找到更接近这些要求的东西。谢谢!
【问题讨论】:
-
有什么问题?有什么不工作吗?
标签: javascript arrays class typescript iterable