新しく書くコードにはflowtypeで型をつけたり,既存のコードにもちょっとずつ型をつけたりしている.
jQueryのオブジェクトを引数として受け取るときに型をつけるのが難しくて,しばらくハマっていた.けどできた.
- flow-typedにない
- 探してみるとなくて,typoしてないか3回くらい見た
% $(yarn bin)/flow-typed search jquery No definitions found, sorry!
- flow-typedにはなくて,iflow-jqueryとしてnpmで公開されている
- npmに上がってるiflow-jqueryが古い
- JQueryAjaxSettingsがinterfaceになる変更がnpmに上がってる版には入ってなかったりする
- npmで入れるのはやめて,githubから直接ダウンロードして置く形にした
- jQueryの型はJQuery
- $element: JQuery とか書くとeslintのno-undefで怒られる
- mizchiさんの情報を得て対処した
- http://qiita.com/mizchi/items/443944d5df4755a72f03
- その他なにか困ったら
- issueが入ってたりする
- Issues · marudor/flowInterfaces · GitHub
ざっくり書くとこんなかんじで書いたら動くようになった.変な間違いかたをしているとき,エラーメッセージを見ると,JQueryじゃなくて,JQueryStaticかな?とかいろいろ思ってしまうけど,JQueryが正しい.
// @flow const getText = ($element: JQuery): string => { return $element.text(); }; module.exports = getText;