📚
オブジェクトを分割代入する際に、変数名を変更する
一見すると妙に感じたことがあるので投稿です。
以下の session
について、session
は(TypeScriptの)型情報だからif文の中に書けるのか?という疑問がありました。
import { useSession } from "next-auth/react";
const XXX: React.FC<Props> = (props) => {
const { data: session } = useSession()
if (!session) {
/* 処理 */
}
}
ですがこの認識は誤りであり、実際はJavaScriptにおける分割代入の仕様であることが分かりました。
mdn web docsのこちらの記事に該当します。
つまり、例えば以下のように代入することができます。
const a = { b: 1, c: {d: 2 } }
const { b: x } = a;
console.log(x) // 1
const { c: {d: y} } = a;
console.log(y) // 2
const { b: xx, c: {d: yy } } = a
console.log(xx) // 1
console.log(yy) // 2
Discussion