首页 > 解决方案 > 输入“承诺”' 缺少类型中的以下属性

问题描述

我不太了解以下错误:

Type 'Promise<void>' is missing the following properties from type 'InventoryModel[]': length, pop, push, concat, and 28 more.  TS2740

我有以下功能组件:

import React, { useEffect, useState } from "react";
import { Grid, TextField } from "@material-ui/core";
import InventoryService from "../services/Inventory";
import InventoryModel from "../Models/Inventory";
import { isThisTypeNode } from "typescript";

type InventoryState = {
  inventoryItems: InventoryModel[];
};

const Inventory: React.FC = () => {
  const [inventory, setInventory] = useState<Partial<InventoryState>>({});
  useEffect(() => {
    const inventoryService = new InventoryService();
    const results = inventoryService.getByLocation().then((response) => {
      setInventory({ ...inventory, inventoryItems: response });
    });
  }, []);
  return <div></div>

在这种情况下,“inventoryItems”是红色突出显示的内容。

标签: reactjstypescriptpromise

解决方案


原来我只需要添加| 对 InventoryState 无效。

type InventoryState = {
  inventoryItems: InventoryModel[] | void;
};

推荐阅读