Javascript 类型脚本索引获取/设置
我正在实现Typescript数组接口。我想知道是否有可能为索引定义get/set。例如:Javascript 类型脚本索引获取/设置,javascript,arrays,interface,typescript,Javascript,Arrays,Interface,Typescript,我正在实现Typescript数组接口。我想知道是否有可能为索引定义get/set。例如: class MyClass<T> implements Array<T> { [index: number] : T; // ... other methods } 类MyClass实现数组{ [索引:编号]:T; //…其他方法 } 是否有可能以以下方式书写: class MyClass<T> implements Array<T> {
class MyClass<T> implements Array<T> {
[index: number] : T;
// ... other methods
}
类MyClass实现数组{
[索引:编号]:T;
//…其他方法
}
是否有可能以以下方式书写:
class MyClass<T> implements Array<T> {
get [index: number] () : T {
// implementation
}
set [index: number] (value: T) : void {
// implementation
}
// ... other methods
}
类MyClass实现数组{
获取[索引:编号]():T{
//实施
}
集合[索引:编号](值:T):无效{
//实施
}
//…其他方法
}
否,在类上重载索引运算符;但是,您可以使用定义,但许多浏览器还不支持
另一种方法是在数组周围创建包装器,以强制人们使用这些方法,您可以在其中添加其他功能:
class MyContainer<T> {
private items: T[] = [];
get(name: string): T {
// some additional functionality may go here
return this.items[name];
}
set(name: string, value: T) : void {
// some additional functionality may go here
this.items[name] = value;
// or here
}
}
const myContainer = new MyContainer<string>();
myContainer.set("key", "value");
console.log(myContainer.get("key")); // "value"
class MyContainer{
私人项目:T[]=[];
get(名称:string):T{
//这里可能会有一些附加功能
返回此。项[名称];
}
集合(名称:字符串,值:T):无效{
//这里可能会有一些附加功能
此.items[名称]=值;
//还是在这里
}
}
const myContainer=新myContainer();
myContainer.set(“键”、“值”);
console.log(myContainer.get(“key”);//“价值”
我班上已经有了这种方法。我想可能有一个直接的方法。