export type DeepArray = T | DeepArray[]; export function deepEqual(a: DeepArray, b: DeepArray): boolean { if (Array.isArray(a) && Array.isArray(b)) { return a.length === b.length && a.every((v, i) => deepEqual(v, b[i])); } else { return a === b; } }