Panda Noir

JavaScript の限界を究めるブログでした。最近はいろんな分野を幅広めに書いてます。

デフォルト引数を悪用して変数宣言を減らす

const state = reactive({
  count: 42,
  flag: true,
  str: 'hello world',
  computed: computed(() => {
    const {count, flag, str} = state;
    return flag ? count : str;
  }),
});

このような Vue3 のコードがあったとします。このとき、わざわざconst文を使わず、デフォルト引数に収める荒業があります。

const state = reactive({
  count: 42,
  flag: true,
  str: 'hello world',
  computed: computed(({count, flag, str} = state) =>
    flag ? count : str
  ),
});

もちろん、今後引数が渡されるようになったら修正しなければなりません。しかし、その場合も TypeScript を使っていれば型エラーになってくれるので、そこまで大惨事を引き起こしはしないと思います。

最も、他のひとが読むときにコードの意図が全くわからなくなるので、業務コードに混ぜるのはやめましょう。