是否有代表任何可迭代对象的打字稿类型

时间:2021-05-14 08:49:09

标签: typescript typescript-generics

我们有如下功能

export const objectUndefinedToNull = (obj) => {
  const apply = (o) => {
    Object.keys(o).forEach((key) => {
      const value = o[key];
      if (value === undefined) {
        o[key] = null;
      }
      if (value instanceof Array || value instanceof Object) {
        apply(value || {});
      }
    });
  };
  apply(obj);
  return obj;
};

我想将所有 anyunknown 类型替换为更合适的类型。 是否有任何类型代表任何可迭代类型,例如可以迭代的数组或对象?

1 个答案:

答案 0 :(得分:2)

您可以如下定义一个 IterableType 类,然后用它代替 anyunknown

class IterableType<T> implements Iterable<T>, Record<K,T>

或者,按照您的原始代码继续使用 anyunknown,但向函数添加一些类型检查以检查它是否是有效类型(数组、记录等)。

相关问题