Typescript

노마드코더 타입스크립트 TIL

pangyoelon 2023. 4. 27. 17:10
  • ? : 객체 요소 타입 지정할 때 선택옵션 부여 ( [type] | undefined )
  • readonly 키워드로 읽기전용 프로퍼티를 만들 수 있음
  • 튜플 : 배열이며 최소한의 길이를 가져야하고 특정 위치에 특정 타입이 있어야함
  • 자바스크립트에 있는 undefined, null 도 있음
  • any : 자바스크립트로 돌아가는 것
  • unknown : 값을 받을 때 그 값이 무슨 타입인지 모를 때 씀 ex) if ( typeof [변수] === “[자료형]” ){ (이 안에서 [자료형] 타입으로써 변수 사용가능) }
  • void : 아무것도 리턴하지않는 함수의 자료형 (솔리디티 view랑 비슷?)
    never : 절대 return되지 않는, 실행되지 않는 자료형 (타입스크립트가 never로 변수를 추론하면 없는 것과 마찬가지인 변수라고 해석하면 될 듯)
  • call signiture (alias 지을 수 있음) : 함수의 매개변수와 리턴값의 타입을 미리 정의한 것
  • 오버로딩 : 여러개의 call signiture가 있는 함수, 파라미터 개수가 다른 call signiture을 설정해서 옵션(선택사항)을 줄 수 있다, 선택사항인 파라미터는 선택적 프로퍼티(?:)를 사용해주어야함
  • x = a ?? b 는 x = (a !== null && a !== undefined) ? a : b; 와 같다
  • concrete type : number, string, boolean, void, unknown 같은 타입
  • generic : call signiture을 타입스크립트가 자동으로 추론하게 해줌, Array를 자세히 보면 요소로 <T>라는 제너릭을 받는 것을 알 수 있다, 즉 타입스크립트의 타입 자동추론 기능은 제너릭으로부터 비롯된 것
  • private, public, protected 와 같은 키워드로 솔리디티에서의 접근제한자와 비슷(같은?)한 효과를 낼 수 있다 이 키워드들은 컴파일 시 사라지며(당연히 JS는 그런 기능이 없으므로) TS안에서만 적용된다
  • protected = 솔리디티에서의 internal과 같은 듯
  • 추상 클래스 : 다른 클래스들이 상속 받을 때만 사용할 수 있는 클래스, 추상 클래스 자체로는 인스턴스를 만들 수 없다, 상속은 extends로 함 (솔리디티의 is) ex) 추상컨트랙트 = 리모컨 ——상속——> TV리모컨, 에어컨리모컨, 선풍기리모컨
  • interface는 클래스에게 구조를 명시해줄 뿐만 아니라 객체의 타입으로도 쓸 수 있다 똑같은 이름의 interface를 여러번 선언하면 모든 interface가 합쳐진다
  • 제너릭은 전달이 가능 ( 클래스 → 인터페이스 )
  • class [클래스이름]<T> 와 같이 선언했다면 생성할 시점에 new [클래스이름]<string> 이렇게 선언하면 클래스안의 모든 제너릭T가 string이 되어 인스턴스화 된다
  • JSDoc으로 js파일도 ts가 보호해줄 수 있다
  • @types/[라이브러리명] : node의 라이브러리 타입들을 정의한 .d.ts파일