見出し画像

【ワンピースで覚えるTypeScript】第8回 分割代入(JavaScript学習者向け)

TypeScriptにおける分割代入についてです。

コードの量が少なくなるので、とても便利ですよね!

ネストした場合も、パターンは決まっているので1つ1つ覚えていきましょう!

const luffy = {
  devil_fruit: "ゴムゴムの実",
  age: 19
};

const { devil_fruit, age } = luffy;
//luffyのdevil_fruitプロパティを変数devil_fruitに代入
//「const devil_fruit = luffy.devil_fruit」と同じ
//luffyのageプロパティを変数ageに代入
console.log(devil_fruit);
console.log(age);

//別の変数名を使いたい時
const chopper = {
  position: "医者",
  bounty: 1000,
}

const {
  position,
  bounty: chopper_bounty,
//プロパティ名: 変数名
} = chopper;
console.log(position);
console.log(chopper_bounty);

//型チェック
const {
  //animal,
} = chopper;

//ネストした場合
const nami = {
  nickname: "泥棒猫",
  body: {
    bust: 98,
    waist: 58,
    hip: 88
  }
}

const { nickname, body: { bust, hip } } = nami;
console.log(nickname);
console.log(bust);
console.log(hip);

//配列
const brother = ["イチジ", "ニジ", "サンジ", "ヨンジ"];

const [one, two, three, four] = brother;
console.log(one);
console.log(three);
//配列も変数に型注釈を与えられない

//オブジェクトの中の配列
const family = {
  parents: "ジャッジ",
  children: ["イチジ", "ニジ", "サンジ", "ヨンジ"],
};

const { parents, children:[first, , third] } = family;
//console.log(parents);
//console.log(first);
//console.log(third);

//配列の中のオブジェクト
const family2 = [
  {
    child1: "イチジ",
    child2: "ニジ",
    child3: "サンジ",
  }
]
const [{child3}] = family2;
console.log(child3);

//デフォルト値
type Obj = { berry?: number };
const chopper1: Obj = {
}

const chopper2: Obj = {
  berry: 1000,
}

const { berry = 0 } = chopper1;
console.log(berry);
const { berry = 0 } = chopper2;
console.log(berry);

//restパターン
const robin = {
  height: 188,
  bust: 100,
  waist: 60,
  hip: 90
}

const { height, ...three_size } = robin
console.log(height);
console.log(three_size);
//heightプロパティを取り除いた新たなオブジェクト

この記事が気に入ったらサポートをしてみませんか?