- const set = new Set(['A', 'B', 'C']);
- // Instead of: set.add('D');
- const set2 = new Set([...set, 'D']);
- // Instead of: set.delete('B');
- const set3 = new Set([...set].filter(key => key !== 'B'));
- // Instead of: set.clear();
- const set4 = new Set();
我想提一句如不雅你在应用 TypeScript(我异常爱好 TypeScript),你可以用 Readonly<T>、ReadonlyArray<T>、ReadonlyMap<K, V> 和 ReadonlySet<T> 接口来在编译期检查你是否测验测验更改┞封些对象,有则抛出编译缺点。如不雅在对一个对象字面量或者数组调用 Object.freeze,编译器会主动揣摸它是只读的。因为映射和集合在其内部表达,所以在这些数据构造上调用 Object.freeze 不起感化。然则你可以轻松地告诉编译器它们是只读的变量。
TypeScript 只读接口
好,所以我们可以经由过程创建新的对象来代替修改本来的对象,然则如许不会导致机能损掉吗?当然会。确保在你本身的应用中做了机能测试。如不雅你须要进步机能,可以推敲应用 Immutable.js。Immutable.js 用持久的数据构造 实现了链表、客栈、映射、集合和其他数据构造。应用了如同 Clojure 和 Scala 如许的函数式说话中雷同的技巧。
- const vehicles = [
- { make: 'Honda', model: 'CR-V', type: 'suv', price: 24045 },
- { make: 'Honda', model: 'Accord', type: 'sedan', price: 22455 },
- { make: 'Mazda', model: 'Mazda 6', type:
推荐阅读
沙龙晃荡 | 去哪儿、陌陌、ThoughtWorks在主动化运维中的实践!10.28不见不散! 几周前,我们开端写一个系列,>>>详细阅读
地址:http://www.17bianji.com/lsqh/38230.html
1/2 1