const unknownFieldsMap: WeakMap any, Set> = new WeakMap(); export const warnForUnknownFields = (target: (new (...args: any[]) => any), key: string | number | symbol) => { "use strict"; const fields: Set = unknownFieldsMap.get(target) || unknownFieldsMap.set(target, new Set()).get(target) as any; if (!fields.has(key)) { console.warn(`[${target.name || ""}] - Detected an unknown field: ${typeof key === "symbol" ? `[Symbol${key.description ? `: ${key.description}` : ""}` : JSON.stringify(key)}`) } }