如何在typescript中实现数组签名方法
试图将其编译:如何在typescript中实现数组签名方法,typescript,Typescript,试图将其编译: interface ListInterface { getObject(index: number): Object; [index: number]: Object; } class List123 implements ListInterface { private list: Object[] = [1,2,3]; getObject(index: number) { return this.list[index] } [index
interface ListInterface {
getObject(index: number): Object;
[index: number]: Object;
}
class List123 implements ListInterface {
private list: Object[] = [1,2,3];
getObject(index: number) { return this.list[index] }
[index: number] { return this.getObject(index) }
}
但tsc正在发射:
interface ListInterface {
getObject(index: number): Object;
[index: number]: Object;
}
class List123 implements ListInterface {
private list: Object[] = [1,2,3];
getObject(index: number) { return this.list[index] }
[index: number] { return this.getObject(index) }
}
[]方法声明的类定义中出现意外的“[”
(针对我遇到的问题取消对//?的注释)有些类型注释用于定义JavaScript行为,但无法实现-indexer注释就是这样一个例子 请参阅 对于问题中提供的代码示例,有一个部分解决方案,因为JavaScript对象自然支持索引器表示法。因此可以编写:
interface ListInterface {
getObject(index: number): Object;
}
class List123 implements ListInterface {
getObject(index: number) {
return <Object> this[index]
}
}
var list = new List123();
list[1] = "my object";
console.log(list[1]); // "my object"
console.log(list.getObject(1)); // "my object";
接口列表接口{
getObject(索引:number):对象;
}
类List123实现ListInterface{
getObject(索引:number){
返回此[索引]
}
}
var list=newlist123();
列表[1]=“我的对象”;
console.log(列表[1]);/“我的对象”
console.log(list.getObject(1));/“我的对象”;
有些类型注释用于定义JavaScript行为,但无法实现-indexer注释就是这样一个例子
请参阅
对于问题中提供的代码示例,有一个部分解决方案,因为JavaScript对象自然支持索引器表示法。因此可以编写:
interface ListInterface {
getObject(index: number): Object;
}
class List123 implements ListInterface {
getObject(index: number) {
return <Object> this[index]
}
}
var list = new List123();
list[1] = "my object";
console.log(list[1]); // "my object"
console.log(list.getObject(1)); // "my object";
接口列表接口{
getObject(索引:number):对象;
}
类List123实现ListInterface{
getObject(索引:number){
返回此[索引]
}
}
var list=newlist123();
列表[1]=“我的对象”;
console.log(列表[1]);/“我的对象”
console.log(list.getObject(1));/“我的对象”;