typescript中继承Map、Set报错的解决

Easter79
• 阅读 771

Map、Set的polyfill实现是可以继承的

if(!this.Map){
    //polyfill
}else{
    (function(){//可继承Map替代原生Map
        var GMap=globalThis.Map;
        try{
            Map.call({});
        }catch(e){
            globalThis.Map=function(args){
                var map=new GMap(args);
                Object.setPrototypeOf(map,Object.getPrototypeOf(this));
                //这里顺便再解决new Map(iterable)的问题,略
                return map;
            };
            Map.prototype=GMap.prototype;
        }
    })();
}

if(!this.Set){
    //polyfill 略
}else{
    (function(){//可继承Set替代原生Set
        var GSet=globalThis.Set;
        try{
            Set.call({});
        }catch(e){
            globalThis.Set=function(args){
                var set=new GSet(args);
                Object.setPrototypeOf(set,Object.getPrototypeOf(this));
                //这里顺便再解决new Set(iterable)的问题,略
                return set;
            };
            Set.prototype=GSet.prototype;
        }
    })();
}
点赞
收藏
评论区
推荐文章
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Souleigh ✨ Souleigh ✨
4年前
Swift 常见面试题解
基础1、class和struct的区别2、不通过继承,代码复用(共享)的方式有哪些3、Set独有的方法有哪些?4、实现一个min函数,返回两个元素较小的元素5、map、filter、reduce的作用6、map与flatmap的区别7、什么是copyonwrite8、如何获取当前代码的函
zdd小小菜鸟 zdd小小菜鸟
2年前
Java基础面试
Java基础面试1.Java集合类的总结tex1、Iterator:Collection(值)、Map(键值对);2、Collection:Set(无序不重复)、List(有序可重复)、Queue;3、Set:H
Wesley13 Wesley13
3年前
Java中Map,List与Set的区别
首先,数组和集合的区别:数组是大小固定的集合可以存储和操作数目不固定的一组数据,集合只能存放引用类型的的数据,不能存放基本数据类型特性List允许重复有序继承自ConnectionSet不允许重复无序继承自Connection
Stella981 Stella981
3年前
HashMap 初始化时赋值
一般初始化一个map并且给map赋值的写法:HashMap<String,StringmapnewHashMap<String,String();map.put("name","test");map.put("age","20");但是我想在初始化的时候就直接给map中set值。
Stella981 Stella981
3年前
ECMA Script 6之 Map 与 Set
Map对象保存键值对。任何值(对象或者原始值)都可以作为一个键或一个值。!ECMAScript6之Map与SetECMAScript6之Map与Set(https://www.linuxprobe.com/wpcontent/uploads/2020/07/126.png)Map对象Map对象保
Stella981 Stella981
3年前
List,set,Map 的用法和区别
Collection├List│├LinkedList│├ArrayList│└Vector│ └Stack└SetMap├Hashtable├HashMap└WeakHashMapCollection接口  Collection是最基本的集合接口,一个Collection代表一组
Stella981 Stella981
3年前
List、Map、Set三个接口存取元素时,各有什么特点
List接口以特定索引来存取元素,可以有重复元素Set接口不可以存放重复元素(使用equals方法区分是否重复)Map接口保存的是键值对(keyvaluepair)映射,映射关系可以是一对一或者多对一(key唯一)Set和Map容器都有基于哈希存储和排序树的两种实现版本。基于哈希存储的版本的实现理论存取时间复杂度是O(1),而基于排序树版本的
Wesley13 Wesley13
3年前
Java连接redis操作
packagecom.lml.redis;importjava.util.HashMap;importjava.util.Iterator;importjava.util.Map;importjava.util.Map.Entry;importjava.util.Set
Easter79
Easter79
Lv1
今生可爱与温柔,每一样都不能少。
文章
2.8k
粉丝
5
获赞
1.2k