首页 > 解决方案 > 如何将接口分配给 const

问题描述

我对 Typescript 很陌生,在我的 中const issuesInitialState,我正在尝试分配界面IssuesInitialState,但出现以下错误。

类型“{}”缺少类型“问题”的以下属性:closeDate、description、issueId、lastEditDate 和 6 more.ts(2740)

预期的类型来自issue在 type 上声明的属性IssuesInitialState

export interface Issue {
  closeDate: string | null;
  description: string;
  issueId: number;
  lastEditDate: string | null;
  priorityId: string;
  projectId: number;
  reportDate: string;
  statusId: string;
  title: string;
  userId: number;
}

interface IssuesInitialState{
  issues:Issue[];
  issue:Issue; 
  issuesByProject:Issue[];
  updateIssue:Issue;
}

export const issuesInitialState:IssuesInitialState = {
  issues: [],
  issue:{},
  issuesByProject: [],
  updateIssue: {},
};

这样我就可以将 cast state 输入到IssuesInitialState.

export const issuesReducer = (
  state = issuesInitialState,
  action: { type: string; payload: Issue }
) :{}=> {
  switch (action.type) {
.....

标签: reactjstypescripttsx

解决方案


Issue有属性,所以在你的 const 中,它不能被声明为{}. 如果变量的类型是具有属性的对象,则必须在声明变量时声明这些属性。

希望它足够清楚。祝你好运!


推荐阅读