3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

代入式の左辺には、省略可能なプロパティ アクセスを指定できません。 ts(2779)

Posted at

コード例とエラー表示内容

 type TestType = {
    param?: {
      prop: string
    }
  }

  const someTestType: TestType = {}
  someTestType.param?.prop = 'fafa' // 代入式の左辺には、省略可能なプロパティ アクセスを指定できません。ts(2779)

エラー原因

上記の例でいうと、someTestType.param?.propの存在が保証されないので値を代入できない可能性がある。

対策

代入するプロパティが存在することを確定させる。

  if (someTestType.param?.prop) {
    someTestType.param.prop = 'fafa'
  }

プロパティが存在することが、すでに明らかである場合は、以下の感じでもOK。

  const someTestType: TestType = {}
  someTestType.param!.prop = 'fafa'
3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?