【发布时间】:2019-12-30 14:10:16
【问题描述】:
我有一个函数,它基本上返回 Promise 数组。函数的返回类型应该是什么?下面是代码
const makeLabelNodesRequest: Promise<K8sResourceKind> = (selectedNode: NodeKind[]) => {
const labelPath = '/metadata/labels';
const labelData = selectedNode.map((node: NodeKind) => {
const labels = SelectorInput.arrayify(_.get(node, labelPath.split('/').slice(1)));
const lblVal = { ...SelectorInput.objectify(labels), ...labelObj };
const patch = [
{
op: labels.length ? 'replace' : 'add',
value: lblVal,
path: labelPath,
},
];
return k8sPatch(NodeModel, node, patch); // returns a promise
});
return labelData; //array of Promise
};
它给出了这个错误 - [ts] 类型 '(selectedNode: NodeKind[]) => Promise[]' 缺少来自类型 'Promise' 的以下属性:然后,catch,[Symbol.toStringTag]。 请注意 NodeKind 和 K8sResourceKind 是自定义类型。
【问题讨论】:
-
Array<Promise<K8sResourceKind>>? -
看起来 k8sPatch 函数的返回类型不是 Promise
标签: javascript reactjs typescript types