반응형
객체 속성 액세스를 위한 선택적 체인 연산자 사용
TypeScript 3.7은 이제 옵션 체인 연산자를 지원합니다.따라서 다음과 같은 코드를 쓸 수 있습니다.
const value = a?.b?.c;
즉, 이 연산자를 사용하여 객체 자체의 속성에 액세스할 수 있습니다.null
또는undefined
. 기본적으로 동일한 작업을 수행하려고 합니다. 그러나 속성 이름은 동적입니다.
const value = a?[b]?.c;
다만, 구문 에러가 표시됩니다.
오류 TS1005: ':'이(가) 예상되었습니다.
내가 여기서 뭘 잘못하고 있는 거지?이게 가능하기나 해?
이 제안은 이것이 불가능하다는 것을 암시하는 것 같습니다(그러나 구문 예제를 잘못 알고 있는 것 같습니다).
대괄호 표기법 및 옵션 체인을 사용하여 속성에 액세스하는 경우 대괄호 외에 점을 사용해야 합니다.
const value = a?.[b]?.c;
이것은 TC39 제안에서 채택된 구문입니다. 그렇지 않으면 파서가 이 구문 여부를 파악하기 어렵기 때문입니다.?
는 삼원식의 일부 또는 옵션 체인의 일부입니다.
내가 생각하는 방법: 옵션 체인의 기호는?
,그건…?.
. 옵션 체인을 할 경우 항상 두 문자를 모두 사용합니다.
옵션 체인 연산자는 다음과 같습니다.?.
다음은 null 가능한 속성 및 함수 처리의 몇 가지 예입니다.
const example = {a: ["first", {b:3}, false]}
// Properties
example?.a // ["first", {b:3}, false]
example?.b // undefined
// Dynamic properties ?.[]
example?.a?.[0] // "first"
example?.a?.[1]?.a // undefined
example?.a?.[1]?.b // 3
// Functions ?.()
null?.() // undefined
validFunction?.() // result
(() => {return 1})?.() // 1
보너스: 기본값
??
정의되지 않은 경우 또는 null인 경우 (Nullish Marescing)을 사용하여 기본값을 설정할 수 있습니다.
const notNull = possiblyNull ?? defaultValue
const alsoNotNull = a?.b?.c ?? possiblyNullFallback ?? defaultValue
언급URL : https://stackoverflow.com/questions/58780817/using-optional-chaining-operator-for-object-property-access
반응형
'sourcecode' 카테고리의 다른 글
FeedWordpress Import에 속하는 이미지의 사이즈가 조정됩니다만, 어디에 있습니까? (0) | 2023.04.03 |
---|---|
JSON으로서의 OkHttp Post Body (0) | 2023.04.03 |
wp-content에 대한 파일 권한을 docker-compose용 공식 워드프레스 이미지로 수정하는 방법 (0) | 2023.04.03 |
AngularJS : 공장 대신 서비스를 사용하는 경우 (0) | 2023.04.03 |
정수가 선행 0으로 시작하는 경우 JSON이 유효하지 않은 이유는 무엇입니까? (0) | 2023.04.03 |