TypeScript抱怨对象为布尔值

时间:2019-09-25 09:14:26

标签: typescript

有一个createFields函数

map来自lodash

const createFields = (usecase: SchemaObject): FieldInterface[] => {
  // TODO: Make the form blueprint to be generated from json schema

  const properties = usecase.properties;
  const requiredProperties = usecase.required || [];

  if (properties && isSchemaObject(properties)) {
    return map(
      properties,
      (value: SchemaObject, key: string): FieldInterface => {
        return {
          type: value.type,
          name: key,
          label: key,
          readonly: false,
          required: requiredProperties.includes(key),
          validations: [],
        };
      },
    );
  }
  return [];
};

您可以在图像中看到,打字稿报告map函数的返回值和iteratee的返回值错误。

enter image description here

但是返回值是一个对象,如代码中所示。而且,如果我将iteratee的返回类型更改为boolean,它就会发出相反的抱怨,像这样。

enter image description here

这是什么问题? boolean怎么返回?

1 个答案:

答案 0 :(得分:0)

这与lodash map函数重载有关。

TypeScript with Lodash: _.map(["123", " 234 "], _.trim) returns boolean[]?

所以要么需要将其放入正确的过载状态。

或用本地map代替lodash Object.entries(object).map(([key, value]) => {})