profileというオブジェクトがあったとします。

profileには、nameageが入る予定ですが、まだ何も入っていません。

type Profile = {
  name: string
  age: number
}

let profile = {}

profileオブジェクトに、nameに『田中』とageに『16』を入れてみます。

let profile = {}
profile.name = "田中"
profile.age = 23

image2

『プロパティ 'name' は型 '{}' に存在しません。』と指摘されました。

このような時に用いるのが、型アサーションになります。

型アサーションは、型情報を上書きします。

書き方は、右辺の後に、as 〇〇を書きます。

type Profile = {
  name: string
  age: number
}

let profile = {} as Profile

確認すると、

image3

profileオブジェクトのnameが string ですよ、と型を指定してくれました。

型アサーションは便利なのですが、型を上書きしてしまうという危険性があります。

型がわかっている場合は、型指定した方が安全性が高まります。

type Profile = {
  name: string
  age: number
}

let profile: Profile = { name: "", age: 0 }
profile.name = "田中"
profile.age = 23
ブログ一覧