최대 1 분 소요

속성의 타입을 단언해주면 문제를 해결하기 쉽지만, 더 간단하게 선택적 체이닝연산자로 가자

obj?.prop;
obj?.[expr];
arr?.[index];
func?.(args);

// Error - TS2532: Object is possibly 'undefined'.
function toString(str: string | undefined) {
  return str.toString();
}

// Type Assertion
function toString(str: string | undefined) {
  return (str as string).toString();
}

// Optional Chaining
function toString(str: string | undefined) {
  return str?.toString();
}

// Before
if (foo && foo.bar && foo.bar.baz) {}

// After-ish
if (foo?.bar?.baz) {}

참고