有一个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的返回值错误。
但是返回值是一个对象,如代码中所示。而且,如果我将iteratee的返回类型更改为boolean
,它就会发出相反的抱怨,像这样。
这是什么问题? boolean
怎么返回?
答案 0 :(得分:0)
这与lodash map
函数重载有关。
TypeScript with Lodash: _.map(["123", " 234 "], _.trim) returns boolean[]?
所以要么需要将其放入正确的过载状态。
或用本地map
代替lodash Object.entries(object).map(([key, value]) => {})
。