TypeScript 3.7은 이제 선택적 연쇄 연산자를 지원합니다 . 따라서 다음과 같은 코드를 작성할 수 있습니다.
const value = a?.b?.c;
즉,이 연산자를 사용하여 객체 자체가 null
또는 인 객체의 속성에 액세스 할 수 있습니다 undefined
. 이제 내가하고 싶은 것은 기본적으로 동일하지만 속성 이름은 동적입니다.
const value = a?[b]?.c;
그러나 구문 오류가 발생합니다.
오류 TS1005 : ‘:’예상.
내가 여기서 뭘 잘못하고 있니? 이것이 가능합니까?
추신 : 제안 은 이것이 불가능하다는 것을 암시하는 것처럼 보입니다 (그러나 어쩌면 구문 예제가 잘못되었을 수도 있습니다).
답변
대괄호 표기법 및 선택적 체인을 사용하여 속성에 액세스하는 경우 대괄호 외에 점이 있어야합니다.
const value = a?.[b]?.c;
이것은 TC39 제안에 의해 채택 된 구문입니다. 그렇지 않으면 파서가 이것이 ?
삼항식의 일부인지 또는 선택적 연쇄의 일부 인지 파악하기 어렵 기 때문 입니다.