gpt4 book ai didi

TypeScript 访问字典类型对象

转载 作者:搜寻专家 更新时间:2023-10-30 22:05:34 24 4
gpt4 key购买 nike

我在类里面需要一种字典(我不确定是否调用了这种对象),我正在使用它:

inputCollection: { [name: string]: HTMLInputElement };

我可以像这样获取和设置值:

this.inputCollection['inputId'] = document.getElementById('inputId');

我想按以下方式访问我的字典,以获取第一个元素

this.inputCollection[0]

我怎样才能轻松实现这一点?

最佳答案

如果您想使用字符串或索引获取项目,则必须实现字典。没有适用于 TypeScript 的框架类库,因此您不是免费获得它的 - 只是制作一个的语言功能。

从技术上讲,您可以同时使用字符串和数字索引器,但第一个字符串项与第一个数字项不同。示例:

class Item {
constructor(public name: string) {
}
}

var items = [];

items['a'] = new Item('One');
items['b'] = new Item('Two');
items[0] = new Item('Three');

alert(items['a'].name); // One
alert(items[0].name); // Three

这是一个非常基本的 Dictionary 类。

class Item {
constructor(public name: string) {
}
}

class Dictionary<T> {
private items = [];

add(key: string, value: T) {
this.items.push(value);
this.items[key] = value;
}

getByIndex(index: number) {
return this.items[index];
}

getByKey(key: string) {
return this.items[key];
}
}

var dictionary = new Dictionary<Item>();
dictionary.add('a', new Item('One'));
dictionary.add('b', new Item('Two'));

alert(dictionary.getByIndex(0).name);
alert(dictionary.getByKey('a').name);

如果你改变一个项目,这也有效......

dictionary.add('a', new Item('One'));

dictionary.getByIndex(0).name = 'Changed';

alert(dictionary.getByIndex(0).name);
alert(dictionary.getByKey('a').name);

关于TypeScript 访问字典类型对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17367636/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com