function iterateStrings(obj, cb) {
    if (obj && typeof obj === 'object' && !Array.isArray(obj)) {
      Object.keys(obj).forEach(key => {
        if (typeof obj[key] === 'string') {
          cb(obj, key);
        } else {
          iterateStrings(obj[key], cb);
        }
      });
    } else if (Array.isArray(obj)) {
      obj.forEach(item => {
        if (typeof item === 'object' || Array.isArray(item)) {
          iterateStrings(item, cb);
        }
      });
    }
  }
Execute `cb(obj, key)` on every object property where obj[key] is a string, recursively.
@param {any} obj
@param {(obj: Record<string, string>, key: string) => void} cb