We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
javascriptはundefinedとnullがあり、どちらを「何もない」として使うかは個人によるところが大きいと思います。 実際VOICEVOXは様々な人からコミットを受けており、両方が混在しています。
問題ないといえば問題ないのですが、実装速度を早めるためにも規約を設けてどちらか片方に寄せたいです。
コーディングしやすくなる
どちらにすればいいかは派閥がある
問題はどっちに寄せるかですが、個人的にはundefinedに寄せたいです。
typescript自身はundefinedを選んでいます。 https://github.com/Microsoft/TypeScript/wiki/Coding-guidelines#null-and-undefined
あと何よりも、Optionalな引数(hoge: string?)を定義して引数が無指定だった場合にundefinedが入るのが言語上定まっているので、undefinedを使うのが良いのかなと思っています。
hoge: string?
linterなどでnullを禁止する方法があれば知りたいです。 また意見も歓迎しています。
The text was updated successfully, but these errors were encountered:
統一するならundefinedでよさそうと思いました。
eslintでnull禁止の方法は eslint/eslint#12177 (comment) ←こちらに no-restricted-syntax を使って実現してる例があります。
no-restricted-syntax
"selector": ":not(BinaryExpression:matches([operator='!=='], [operator='==='])) > Literal[value=null]"
この例だと、nullを返すAPIのライブラリ等のために hoge === null や hoge !== null は許容しつつ、 hoge = null や hoge(null) 、 { hoge: null } は許さない設定になります。
hoge === null
hoge !== null
hoge = null
hoge(null)
{ hoge: null }
ref: https://eslint.org/docs/latest/rules/no-restricted-syntax https://eslint.org/docs/latest/rules/eqeqeq
個人的にはnullかundefinedは区別せず、判定には一律 hoge == null hoge != null を使うのが好みですが、VOICEVOXのコードを検索したところ hoge === undefined hoge !== undefined の方が圧倒的多数派でした。 nullとundefinedを区別している既存コードもありそうですし、判定方法も統一するなら後者に合わせた方が安全な気はしますね・・・
hoge == null
hoge != null
hoge === undefined
hoge !== undefined
Sorry, something went wrong.
ありがとうございます!! 確かにnullを返すライブラリのために=== nullは残しておかないといけないですね。
=== null
今まで見た感じ、nullとundefinedが混在している箇所は無い・・・はずです。 まあ一旦===側に寄せちゃって、時間あるときに==に寄せてもいいかもと思いました!
===
==
undefined
null
No branches or pull requests
内容
javascriptはundefinedとnullがあり、どちらを「何もない」として使うかは個人によるところが大きいと思います。
実際VOICEVOXは様々な人からコミットを受けており、両方が混在しています。
問題ないといえば問題ないのですが、実装速度を早めるためにも規約を設けてどちらか片方に寄せたいです。
Pros 良くなる点
コーディングしやすくなる
Cons 悪くなる点
どちらにすればいいかは派閥がある
実現方法
問題はどっちに寄せるかですが、個人的にはundefinedに寄せたいです。
typescript自身はundefinedを選んでいます。
https://github.com/Microsoft/TypeScript/wiki/Coding-guidelines#null-and-undefined
あと何よりも、Optionalな引数(
hoge: string?
)を定義して引数が無指定だった場合にundefinedが入るのが言語上定まっているので、undefinedを使うのが良いのかなと思っています。その他
linterなどでnullを禁止する方法があれば知りたいです。
また意見も歓迎しています。
The text was updated successfully, but these errors were encountered: