typescript

CH 5. 연산자

프로일기꾼 2023. 9. 18. 15:40

5.1.1. 산술 연산자

  • 지수 연산자(exponentiation operator)
    • ES7에서 제공하는 기능으로 ** 라는 연산자로 사용된다. Math.pow를 대체해 사용할 수 있다
    • 10 ** 2 ⇒ 100 / 10 ** 3 ⇒ 1000

5.1.2. 비교, 논리, 조건 연산자

  • == 와 != 연산자 대신 ===과 !== 사용하기를 권장
  • 위 연산자를 사용해야 자바스크립트로 컴파일하고 나서도 타입 안전성을 보장할 수 있기 때문

5.2.1. 객체 디스트럭처링

  • 객체 리터럴에서 변수명에 대응하는 속성값을 추출해 변수로 할당하는 데 유용

    let { id, country = 88 } = { id: "happy" };
    
    console.log(id, country); // happy, 88
  • 디스트럭처링 할당 시 할당할 객체 속성에 새로운 이름을 부여해 속성을 재명명(property renaming)을 할 수 있다.

    let { id: newName1, country: newName2 } = { id: "happy", country: 88 };
    
    console.log(newName1, newName2); // happy 88;
  • 함수 매개변수에 디스트럭처링 사용하기

    function printProfile({ name, nationality = "?" }) {
      console.log(name, nationality);
    }
    
    printProfile({ name: "happy" }) // happy ?
    // 위 코드에서 printProfile 함수는 반드시 객체를 전달해야 한다.
    
    ※만약 객체 전달을 생략하려면 아래 코드와 같이 우항에 할당식을 전달 해야한다.※
    
    function printProfile({ name, nationality = "none" } = { name: "anonymous" }) {
      console.log(name, nationality);
    }
    
    // 위 같은 함수를 작성하게 되면 아래와 같은 함수 호출이 가능
    printProfile();
    printProfile({ name: "happy" });
    printProfile({ name: "happy", nationality: "korea" });
  • 객체 디스트럭처링 시 type 키워드 활용

    type C = { a: string, b?: number };
    
    function fruit({ a, b }: C): void {
      console.log(a, b);
    }
    
    fruit({ a: "apple", b: 10 });
    fruit({ a: "apple" });

5.2.2. 배열 디스트럭처링

  • 예시 코드

    let numbers = ["one", "two", "three", "four", "five"];
    
    let [num1, num2] = numbers;
    console.log(num1, num2); // one two
    
    let [, , num3, num4,] = numbers;
    console.log(num3, num4); // three four
    
    [num4, num3] = [num3, num4];
    console.log(num3, num4); // four three
    
    let [color1, color2 = "blue"] = ["black"];
    console.log(color1, color2); // black blue

5.3. 전개 연산자

let [first, ...second] = [1, 2, 3];

console.log(first); // 1
console.log(second); // [2, 3]

5.3.2. 전개 연산자를 이용한 객체 요소 확장

  • 전개 연산자는 얕은 복사(shallow copy) 방식으로 값을 복사한다.

'typescript' 카테고리의 다른 글

CH 1,2(타입스크립트 소개 / 개발 환경 구축)  (2) 2023.11.08
CH4. 제어문  (0) 2023.09.18
CH14. 프로젝트 구성과 번들링  (0) 2023.09.18