Closed1

Typescriptオブジェクトのネストを.区切りで参照できない

スジ彫りのマサスジ彫りのマサ

パターン①

interface User {
  firstName: string
  lastName: string
  ability: {
    power: number
    intelligence: number
    toughness: number
  }
}

const player1 = {} as User

// これは代入できる
player1.firstName = Mike
player1.lastName = Popcorn

// powerなどそれぞれが参照できずエラーとなる
player1.ability.power = 80
player1.ability.intelligence = 60
player1.ability.toughness = 50

パターン②
↓は代入できる

interface User {
  firstName: string
  lastName: string
  ability: {
    power: number
    intelligence: number
    toughness: number
  }
}

const player1 = {
  firstName: Mike
  lastName: Popcorn
  ability: {
    power: 80
    intelligence: 60
    toughness: 50
  }
} as User

何故か・・
多分、パターン①はplayer1がただの一階層のオブジェクトとして判定されている(↓の部分)

const player1 = {} as User
このスクラップは2023/03/01にクローズされました