单测
//readonly.spec.ts
import { readonly } from "../readonly"
it('happy path', () => {
// not set
const original = { foo: 1, bar: 2 }
const wrapped = readonly(original)
expect(wrapped).not.toBe(original)
expect(wrapped.bar).toBe(2)
wrapped.foo = 2
// set 后不会更改
expect(wrapped.foo).toBe(1)
})
//readonly.ts
export function readonly(raw) {
return new Proxy(raw, {
get(target, key, receiver) {
const res = Reflect.get(target, key, receiver)
return res
},
set() {
return true
},
})
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。