Open3

個人的便利コード集(JS)

いかそばいかそば

どうしてもobjectを連想配列として使いたいときに

/** @template K @extends {string|symbol|number} @template V @param {Record<K,V>} init */
const Dict = function Dict(init={}){return new Proxy({},((map=new Map(Object.entries(init)))=>({get(t,k){return map.get(k)},set(t,k,v){return map.set(k,v).get(k)}}))())};
// usage
const map = new Dict({})
map["hogehoge"] = 1000
console.log(map.hogehoge,map.constructor) // 1000 undefined
いかそばいかそば

どうしても一行でオブジェクトを少しだけ操作したいときに

/** @template T @param {T} o @param {null|((x:T) => void)} f */
const editObject = (o,f=null)=>void(f && f(o)) || o
いかそばいかそば

typescriptにすぐ持っていけるように極力JSDocを書いていきます