コード例とエラー表示内容
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'