React 再入門しようと思ったけど AsyncIterator
エラーが出た。(1か月に1回ぐらい思ってんなこいつ)
AsyncIterator エラー
今は TypeScript-React-Starter
という素敵なものがあると聞いたので、早速使おうと思ったら yarn start
で エラーがでた。
> npm install -g typescript@next
+ typescript@3.0.0-dev.20180623
> npm install -g create-react-app
+ create-react-app@1.5.2
> create-react-app my-react-app --scripts-version=react-scripts-ts
> cd my-react-app
> yarn start
@types/graphql/subscription/subscribe.d.ts
(17,12): Cannot find name 'AsyncIterator'.
しょうがないので、昔触った webpack のプロジェクトを思い出しつつ環境構築したけど、全く同じエラーで動かなかった。
> webpack
@types/graphql/subscription/subscribe.d.ts
(17,12): Cannot find name 'AsyncIterator'.
Async Iteration とは
Async Iteration とは ES2018 に入る 非同期イテレーターの仕様らしい。
問題はどこにあるかというと、 graphql-subscriptions
で、AsyncIterator の型解決に問題がある? そうだ。
解決策もばっちり上記リンクに乗っていて、
動かすには
tsconfig.json
の compilerOptions.lib
に "esnext.asynciterable" を追加する。
"lib": ["es6", "dom", "esnext.asynciterable"],
どうしてこうすれば動くかはよくわからないので、誰か教えてください。