TIL 22-07-25 + recent

thisisyjin·2022년 7월 25일
0

TIL 📝

목록 보기
77/113

typeScript

Union

  • | 연산자로 타입을 구분.
  • () 는 선택사항임.

Intersection

  • & 연산자로 두 개 이상의 타입을 조합하는 경우.
  • 새로운 타입을 생성하지 않고 기존의 타입을 조합할 수 있어 유용.
  • 자주 사용하지는 않는다.

Function

  • 함수.
  • 화살표 함수를 이용하여 타입을 지정할 수 있음.
  • 인수의 타입과 반환 값의 타입을 입력.
let myFunc: (arg1: number, arg2: number) => number;

myFunc = function (x, y) {
  return x + y;
};

타입 추론

  • 명시적으로 타입 선언이 되어있지 않은 경우,
    타입을 추론해 제공함.
let num = 12;
num = 'Hello';  //Error - Ts2322

타입을 추론하는 경우

  • 초기화된 변수
  • 기본값이 설정된 매개 변수
  • 반환값이 있는 함수

타입 단언

= Assertions.

타입 추론을 통해 판단할 수 있는 타입의 범주를 넘는 경우,
더 이상 추론하지 않도록 지시할 수 있음.

-> 타입스크립트보다 타입에 대해 더 잘 이해하고 있는 상황을 의미함.

Non-null 단언 연산자

! 를 사용.
-> null, undefined가 아님을 단언.


타입 가드

  • 타입 단언을 여러 번 사용하게 되는 경우
    -> 타입 가드를 제공하면 특정 범위에서 타입을 보장할 수 있음.
NAME is TYPE
function isNumber(val: string | number): val is number {
  return typeof val === 'number';
}

인터페이스

  • 타입스크립트 여러 객체를 정의하는 일종의 규칙이자 구조.
  • interface 키워드와 함께 사용함.
interface IUser {
  name: string,
  age: number,
  isAdult: boolean
}

반드시 중괄호 안에 key: value 쌍으로 작성해준다.
보통은 ,로 구분하지만 ;으로 구분하거나 기호를 생략해도 된다.

옵셔널 프로퍼티

  • 프로퍼티명 뒤에 ?를 붙이면 선택적인 속성으로 정의할 수 있다.
  • 즉, 필수가 아닌 속성으로 정의할 수 있다.
interface IUser {
  name: string,
  age: number,
  isAdult?: boolean // Optional property
}

읽기 전용 속성

  • readonly 키워드.
  • 초기화된 값을 유지해야 하는 읽기 전용 속성.
interface IUser {
  readonly name: string, // 읽기 전용
  age: number
}

함수 타입

  • 호출 시그니처 (Call Signature)
  • 함수의 매개변수, 반환 타입 지정)
interface IName {
  (PARAMETER: PARAM_TYPE): RETURN_TYPE // Call signature
}

클래스 타입

  • 인터페이스로 클래스를 정의하려면, implements 키워드를 사용함.
interface IUser {
  name: string,
  getName(): string
}

class User implements IUser {
  constructor(public name: string) {}
  getName() {
    return this.name;
  }
}

참고 문서




막간을 이용한 근황 토크 💬

최근 약 2-3주간 블로그나 깃헙 방문을 못했었는데
간단히 이유를 말해보면 ... ?

  1. 아팠다
  2. 많이 아팠다 🥲
  3. 이제야 좀 괜찮아졌다 🙇‍♀️

다시 조금씩 힘내고있으니 열심히 개발 공부 다시 재개 🚀
당분간은 티스토리에서 알고리즘 풀이 마무리 짓고 오겠다 ✋

profile
기억은 한계가 있지만, 기록은 한계가 없다.

0개의 댓글