質問: 下記URLにある31,35行目の<>の意味と 49行目の?の意味がわかりません。 これらはjavascriptの記法でしょうかreact、es6,es5?の特殊な記法でしょうか、名前もわからないので検索しようがなかったです。教えていただけますでしょうか。
回答: これは型定義ですね。 JSしかやったことがないとあまりなじみがないですが、それぞれの変数やオブジェクトに、あらかじめ型を設定しています。 ?がついているのはNullable型といって、文字列とか数値とかとは別に、Nullも許容しますよってことです。 JSだと、同じ変数名に数値を入れたり文字列を入れたりできちゃいますが、他の言語では型が厳密に決められていて、string型と決まっていれば文字列しか入れられない、という風になっています。 それをJSでやるためのフレームワークやライブラリがあるわけですね。 なんでそんなめんどくさいことを、と思いますが、型付きの言語をやってる人からすればJSやPHPはいい加減でわかりにくいしチェックもしづらい、エラーがわかりにくい、とか、まあやりづらいと思っている人もいるわけです。 回答としては「Flowの記法」とでもいいましょうか。 Reactチームが提唱しているのは、型定義をしたければFlow(提示のURLは、Flux+Flowで作られているようです)、もしくはTypeScriptを使いましょうねという流れになっています。 reactjs/core-notes > > One concern might be that as a separate project PropTypes could become incompatible (as a type system) with Flow or TypeScript. > > >