属性 使用 GraphQL 和 Typescript 的类型 {`id`} 中缺少 'id'
Property 'id' is missing in type {`id`} using GraphQL and Typescript
总的来说,我是编码和 Typescript 的新手,所以请原谅我缺乏知识。我试图让我的应用程序与我的 api 对话,但由于我的主 ID 键有一个“?”,我收到以下错误。如下:
export interface PartMaster {
id?: number;
}
当我删除“?”时我得到一个不同的错误,当我保留它时,我也会得到一个不同的错误。我在 GraphQL 中遗漏了什么吗?我主要是前端开发人员,我的同事完成了所有 GraphQL 管理工作,但我今天需要自己解决这个问题,因此我们将不胜感激。
这是当我有“?”时它不喜欢的代码。在 id:
computed: {
part(): PartMaster {
return {
partNumber: this.partNumber,
}
}
},
错误显示 属性 'id' 缺少类型 partNumber
这是我包含“?”时的错误:
editRow(partMaster.id)
editRow(part.id)
下划线 partmaster.id 和 part.id 错误如下:
'number | undefined' 类型的参数不能分配给 'number' 类型的参数。
类型 'undefined' 不可分配给类型 'number'.
这个问题确实需要更多细节,包括定义 editRow
函数和调用 GraphQL 查询的部分,以及 id
未标记为可选时的错误文本.但是,我还没有足够的声誉来发表评论,所以我会在答案中解决这个问题。
根据给出的信息,这是我可以猜测的:
- 您给出的最后一条错误消息 (
Argument of type 'number | undefined' is not assignable to parameter of type 'number'. Type 'undefined' is not assignable to type 'number'.
) 可能是因为 editRow
需要 number
类型的参数。通过将 id
标记为可选,您表明它有时可能是 undefined
。要么不要将其标记为可选,要么让 editRow
接受 number | undefined
并在代码中处理 undefined
情况。
- 在你去掉“?”的情况下从 id,我首先要检查的是您的 GraphQL 查询实际上确实请求了
id
字段。 GraphQL 的要点是只请求你需要的东西,所以你的同事可能没有将这个字段添加到请求中。如果不是那样,如果没有上面提到的额外细节,我将无法提供帮助。
总的来说,我是编码和 Typescript 的新手,所以请原谅我缺乏知识。我试图让我的应用程序与我的 api 对话,但由于我的主 ID 键有一个“?”,我收到以下错误。如下:
export interface PartMaster {
id?: number;
}
当我删除“?”时我得到一个不同的错误,当我保留它时,我也会得到一个不同的错误。我在 GraphQL 中遗漏了什么吗?我主要是前端开发人员,我的同事完成了所有 GraphQL 管理工作,但我今天需要自己解决这个问题,因此我们将不胜感激。
这是当我有“?”时它不喜欢的代码。在 id:
computed: {
part(): PartMaster {
return {
partNumber: this.partNumber,
}
}
},
错误显示 属性 'id' 缺少类型 partNumber
这是我包含“?”时的错误:
editRow(partMaster.id)
editRow(part.id)
下划线 partmaster.id 和 part.id 错误如下:
'number | undefined' 类型的参数不能分配给 'number' 类型的参数。 类型 'undefined' 不可分配给类型 'number'.
这个问题确实需要更多细节,包括定义 editRow
函数和调用 GraphQL 查询的部分,以及 id
未标记为可选时的错误文本.但是,我还没有足够的声誉来发表评论,所以我会在答案中解决这个问题。
根据给出的信息,这是我可以猜测的:
- 您给出的最后一条错误消息 (
Argument of type 'number | undefined' is not assignable to parameter of type 'number'. Type 'undefined' is not assignable to type 'number'.
) 可能是因为editRow
需要number
类型的参数。通过将id
标记为可选,您表明它有时可能是undefined
。要么不要将其标记为可选,要么让editRow
接受number | undefined
并在代码中处理undefined
情况。 - 在你去掉“?”的情况下从 id,我首先要检查的是您的 GraphQL 查询实际上确实请求了
id
字段。 GraphQL 的要点是只请求你需要的东西,所以你的同事可能没有将这个字段添加到请求中。如果不是那样,如果没有上面提到的额外细节,我将无法提供帮助。