(obj: any, key: any, value?: any)
| 82 | export function set<T extends Object>(obj: T, values: { [key: string]: any }) |
| 83 | export function set<T extends Object>(obj: T, key: PropertyKey, value: any) |
| 84 | export function set(obj: any, key: any, value?: any): void { |
| 85 | if (arguments.length === 2 && !isObservableSet(obj)) { |
| 86 | startBatch() |
| 87 | const values = key |
| 88 | try { |
| 89 | for (let key in values) { |
| 90 | set(obj, key, values[key]) |
| 91 | } |
| 92 | } finally { |
| 93 | endBatch() |
| 94 | } |
| 95 | return |
| 96 | } |
| 97 | if (isObservableObject(obj)) { |
| 98 | ;(obj as any as IIsObservableObject)[$mobx].set_(key, value) |
| 99 | } else if (isObservableMap(obj)) { |
| 100 | obj.set(key, value) |
| 101 | } else if (isObservableSet(obj)) { |
| 102 | obj.add(key) |
| 103 | } else if (isObservableArray(obj)) { |
| 104 | if (typeof key !== "number") { |
| 105 | key = parseInt(key, 10) |
| 106 | } |
| 107 | if (key < 0) { |
| 108 | die(`Invalid index: '${key}'`) |
| 109 | } |
| 110 | startBatch() |
| 111 | if (key >= obj.length) { |
| 112 | obj.length = key + 1 |
| 113 | } |
| 114 | obj[key] = value |
| 115 | endBatch() |
| 116 | } else { |
| 117 | die(8) |
| 118 | } |
| 119 | } |
| 120 | |
| 121 | export function remove<K, V>(obj: ObservableMap<K, V>, key: K) |
| 122 | export function remove<T>(obj: ObservableSet<T>, key: T) |
no test coverage detected