JSクリーンコードのヒント:返されるオブジェクトのタプルを使用しないでください
3361 ワード
私はRecord & Tuple Proposalについて話すつもりはありませんが、この悪い習慣についてです.
問題は命名を失うことだ
では、上記のものを使う例を見てみましょう.
ハウツーとスタイル
単にオブジェクトを返します.
function createSomething() {
const thing1 = {
aProperty: 'indeed'
};
function thing2() { /* ... */ }
return [thing1, thing2];
}
この例では全くすべて間違っている.正直に私は実際の生産コードでそれを見て驚いた.問題は命名を失うことだ
では、上記のものを使う例を見てみましょう.
// Having a typo won't cause any errors
// but you won't find the usages.
const [thang, thing2] = createSomething();
// This is not just valid, but super misleading!
// You accidentally changed the order and you had no errors!
const [thing2, thing1] = createSomething();
我々は、リターンで何もなしでまだcreateSomething
の中でまだ無傷の名前を失っています.(React
チームは実際にこれを使用してフックの名前を指定します-しかし、彼らはまた、linter
ルールを介して命名を実施しようとします).ハウツーとスタイル
単にオブジェクトを返します.
return { thing1, thing2 };
これがあなたの使い方です.// will cause error
const { thang, thing2 } = createSomething();
// order does not matter, no penalty
// if you misremember the order
const { thing2, thing1 } = createSomething();
💪 🦾 💪 🦾 💪 🦾 💪 🦾Reference
この問題について(JSクリーンコードのヒント:返されるオブジェクトのタプルを使用しないでください), 我々は、より多くの情報をここで見つけました https://dev.to/latobibor/js-clean-code-tip-don-t-use-tuples-for-returned-objects-3onaテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol