(obj, fn)
| 235 | * @returns {T} result |
| 236 | */ |
| 237 | const mapObject = (obj, fn) => { |
| 238 | /** @type {T} */ |
| 239 | const newObj = Object.create(null); |
| 240 | for (const key of Object.keys(obj)) { |
| 241 | newObj[/** @type {keyof T} */ (key)] = fn( |
| 242 | obj[/** @type {keyof T} */ (key)], |
| 243 | /** @type {keyof T} */ |
| 244 | (key) |
| 245 | ); |
| 246 | } |
| 247 | return newObj; |
| 248 | }; |
| 249 | |
| 250 | /** |
| 251 | * Checks whether this object is overlap. |