TypeScript & Amplifyで起きるエラーの対処メモ
Amplifyで作成した開発環境でGraphQLのスキーマを読み込もうとしたらこんなエラーが
async function fetchNotes() {
const apiData = await API.graphql({ query: listNotes });
setNotes(apiData.data.listNotes.items);
}
プロパティ 'data' は型 'GraphQLResult<object> | Observable<object>' に存在しません。
プロパティ 'data' は型 'Observable<object>' に存在しません。ts(2339)
TypeScriptの型定義がされてないため、エラーが起きています。
解決策
// @ts-ignore
を加えると、エラーが回避されます。
例:
const apiData = await API.graphql({ query: listNotes });
// @ts-ignore
setNotes(apiData.data.listNotes.items);
これでエラーが回避されました。
他の解決策
// @ts-ignore
を使うと一括で型エラーを回避してくれますが、型無効化というのは抵抗あるので他の解決策も探してみます。
参考:
https://higelog.brassworks.jp/2824
https://github.com/aws-amplify/amplify-js/issues/4257