忽略大小写Map.get()类型脚本

时间:2017-03-05 12:52:42

标签: typescript

在类型脚本MAP中查找密钥时,我可以以某种方式忽略大小写吗? 我没有看到Map.get()方法或任何类似的任何重载选项。 寻找创意。

1 个答案:

答案 0 :(得分:0)

js Map本身并不支持,但你可以自己动手,例如:

class IgnoreCaseMap<V> extends Map<string, V> {
    set(key: string, value: V) {
        return super.set(key.toLocaleLowerCase(), value);
    }

    get(key: string): V {
        return super.get(key.toLocaleLowerCase());
    }
}

let map = new IgnoreCaseMap<string>();
map.set("STRING1", "value 1");
map.set("strIng2", "value 2");

console.log(map.get("string1")); // value 1
console.log(map.get("STRING2")); // value 2