【发布时间】:2020-08-10 02:02:17
【问题描述】:
我正在使用 typescript、react-apollo 和 AWS Appsync 来构建我正在构建的 react 应用程序,但遇到了打字稿警告,我不确定我哪里出错了。
我的 graphql 架构看起来像 -
schema {
query: Query
}
type Query {
events: [Event]
}
type Event {
...
}
我正在使用useQuery 返回所有事件,例如 -
const {
loading: eventsListLoading,
error: eventsListError,
data: eventsListData
} = useQuery(EVENTS_LIST_HOME);
EVENTS_LIST_HOME 来自 -
export const EVENTS_LIST_HOME = gql`
query eventsListHome{
events {
title
}
}
`;
我正在尝试渲染这些项目 -
<table>
{
eventsListData.events.map((event: IEvent) => (
<tr>
<td>{event.title}</td>
</tr>
))
}
</table>
我有一个打字稿界面IEvent
export default interface IEvent {
title: string;
}
但我得到了错误 -
我尝试将 typescript 类型重命名为 Event 而不是 IEvent 并添加其他参数、索引和数组,即使它们没有被使用,但同样的错误
我错过了什么?如何在 typescript 中使用 Event 的 grapghql 类型?
【问题讨论】:
-
你如何生成你的打字稿类型? TypeScript 具有结构化类型,这意味着类型形状需要兼容——名称无关紧要。最简单的事情可能是简单地省略注释。类型似乎是推断出来的。
-
@Herku 我目前不生成它们。我是手动做的。我应该生成它们吗?不幸的是,当我在
map回调中省略类型时,我没有在我的 IDE 中获得任何智能感知event
标签: typescript graphql