dbflute / dbflute-intro

introduction of DBFlute, provides e.g. first setup, GUI handling
Apache License 2.0
7 stars 6 forks source link

[Easy] 戻り値宣言やnullのユニオン型など基本実装ポリシーの横断修正 #486

Closed jflute closed 8 months ago

jflute commented 1 year ago

riot7でのTypeScript周りで決まった基本実装ポリシーを適応させるために、既存コード (主に移行が終わってるもの) に横断修正をする。

仕組み周りのtsやwelcome.tsなどが対象。

ず〜むで決まったこと:
o READMEとかちょこっと修正ものはチケット切らずdevelop直接コミットでOK
o 戻り値の型は関数定義として必ず定義する
(横断修正の時にlintチェック入れる)
o 戻り値で値が必須ではない場合は、ユニオン型でnullを使う
(riotやTypeScript自身がnullを使っている)
o 現状なぜか呼び出し側でエラーにならないが、ちゃんとエラーになってる現場があるようなのでオプションなど調べていく
o それ以外の場面、例えばstateのJSON項目でまだ何も未定義の項目などはundefinedで統一していく
(変数はundefined, 値はnull)
戻り値の型、ある程度の横断修正できた後に .eslintrc.json で
"@typescript-eslint/explicit-function-return-type": "error"
を追加する

ref: https://typescript-eslint.io/rules/explicit-function-return-type/

jflute commented 1 year ago

strictNullChecks:

unionでnullチェックが効かない件は strict 設定がfalseだったからみたい
https://typescriptbook.jp/reference/tsconfig/strictnullchecks

strict設定:

strict設定はこれのことですね
新規にプロジェクトつくるならtrueにするのが鉄則なんですが、あとからtrueにすると結構大変というやつですね…
https://typescriptbook.jp/reference/tsconfig/strict

tsconfig.json:

    "target": "es5",
    "allowJs": true,
    "strict": true,
...