首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeScript访问字典类型对象

TypeScript访问字典类型对象
EN

Stack Overflow用户
提问于 2013-06-28 14:53:40
回答 3查看 19.8K关注 0票数 2

在我的类中我需要一种字典(我不确定这类对象是否被调用),我使用的是:

inputCollection:{ name: string: HTMLInputElement };

我可以得到和设置这样的值:

this.inputCollection'inputId‘= document.getElementById('inputId');

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

this.inputCollection

我怎么能轻易做到这一点呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-06-28 15:53:02

在巴斯拉特的TypeScript集合库上吃个鱿鱼

如果你在0.9.0上工作,你需要做一些小的修正,但它是好的。

票数 3
EN

Stack Overflow用户

发布于 2013-06-28 15:36:02

如果要使用字符串或索引获取项,则必须实现字典。TypeScript没有框架类库,所以您不能免费获得它--只需要创建一个语言特性。

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

代码语言:javascript
复制
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

下面是一个非常基本的字典类。

代码语言:javascript
复制
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);

如果你改变了一个项目.

代码语言:javascript
复制
dictionary.add('a', new Item('One'));

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

alert(dictionary.getByIndex(0).name);
alert(dictionary.getByKey('a').name);
票数 6
EN

Stack Overflow用户

发布于 2013-06-28 15:23:48

数组、对象(所使用的是什么)之间存在差异。对象属性没有索引。也就是说,您添加的第一个元素不一定位于第一个内存位置。所以你不能这么做。如果需要这样的功能,请使用数组而不是字典对象。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17367636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档