객체 속성 액세스에 옵션 체인 연산자 사용


14

TypeScript 3.7은 이제 선택적 연쇄 연산자를 지원합니다 . 따라서 다음과 같은 코드를 작성할 수 있습니다.

const value = a?.b?.c;

즉,이 연산자를 사용하여 객체 자체가 null또는 인 객체의 속성에 액세스 할 수 있습니다 undefined. 이제 내가하고 싶은 것은 기본적으로 동일하지만 속성 이름은 동적입니다.

const value = a?[b]?.c;

그러나 구문 오류가 발생합니다.

오류 TS1005 : ':'예상.

내가 여기서 뭘 잘못하고 있니? 이것이 가능합니까?

추신 : 제안 은 이것이 불가능하다는 것을 암시하는 것처럼 보입니다 (그러나 어쩌면 구문 예제가 잘못되었을 수도 있습니다).


1
요점을 놓치면 연산자는?.
zessx

예, 물론 감사합니다 😊
Golo Roden

답변:


17

대괄호 표기법 및 선택적 체인을 사용하여 속성에 액세스하는 경우 대괄호 외에 점이 있어야합니다.

const value = a?.[b]?.c;

이것은 TC39 제안에 의해 채택 된 구문입니다. 그렇지 않으면 파서가 이것이 ?삼항식의 일부인지 또는 선택적 연쇄의 일부 인지 파악하기 어렵 기 때문 입니다.


1
나는 대체 할 것 하드불가능합니다 .
vol7ron

@ vol7ron 왜 그렇게-나는 그것이 기대할 수 있다고 생각합니다:
AnArrayOfFunctions

특히 오류가있는 경우 구별 할 수 없습니다.
vol7ron
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.