1. 맵드 타입 ? 맵드 타입이란 기존에 정의되어 있는 타입을 새로운 타입으로 변환해 주는 문법을 의미합니다. 자바스크립트 map() API 함수를 타입에 적용한 것과 같은 효과를 가집니다. type T_1 = 't1' | 't2' | 't3'; type T_2 = { [K in T_1]: number }; /* [K in T_1] == 't1', 't2', 't3'가 순차적으로 들어오고 들어온 키에 대한 타입을 : number 로 지정 따라서 type T_2 = { t1: number; t2: number; t3: number; } 와 같음. */ 2. 맵드 타입 사례 /* 재네릭 타입을 받아 제네릭의 속성 값을 키값으로 키가 가지는 타입을 선택적 프로퍼티로 재정의 */ type Subset = { [..
1. 유틸리티 타입 ? TS는 일반적인 타입 변환을 쉽게 하기 위해서 몇 가지 유틸리티 타입을 제공하며, 이러한 유틸리티는 전역으로 사용 가능합니다. 유틸리티 타입은 이미 정의해 놓은 타입을 변환할 때 사용하기 좋은 타입 문법입니다. 유틸리티 타입을 꼭 쓰지 않더라도 기존의 인터페이스, 제네릭 등의 기본 문법으로 충분히 타입을 변환할 수 있지만 유틸리티 타입을 쓰면 훨씬 더 간결한 문법으로 타입을 정의할 수 있습니다. 2. 유틸리티 타입 사례 자주 사용하는 유틸리티 타입들을 써보겠습니다. 🤔 Pick (픽) 픽(Pick) 타입은 특정 타입에서 몇 개의 속성을 선택(pick)하여 타입을 정의할 수 있습니다. T에서 프로퍼티 K의 집합을 선택해 타입을 구성합니다. 그렇다면 어떤 코드를 어떻게 바꿀 수 있는..
1. 타입 추론(Type Inference) 변수의 타입을 명시적으로 적어주지 않고도, 컴파일러가 알아서 이 변수의 타입을 대입된 값을 통해 추론하는 것 입니다. 이외에도 변수, 속성, 인자의 기본 값, 함수의 반환 값 등을 설정할 때 타입 추론이 일어납니다. let numValue = 10; numValue = 20; numValue = '30'; // Error !! /* JS에서는 오류가 아니나, TS에서는 오류가 발생합니다. 1. let numValue = 10;에서 타입 추론에 의해 numValue 변수의 타입은 number로 정해집니다. 2. 따라서 number타입에 string 값을 할당하려고 하면 오류가 발생합니다. */ 1-(sub). 가장 적절한 타입(Best Common Type) 여..
1. 제네릭 기본 형태 제네릭은 선언 시점이 아니라 생성 시점에 타입을 명시하여 하나의 타입만이 아닌 다양한 타입을 사용할 수 있도록 하는 기법이며, 재사용 성이 높은 컴포넌트를 만들 때 자주 활용됩니다. T는 제네릭을 선언할 때 관용적으로 사용되는 식별자로 타입 파라미터라 합니다. (T는 Type의 약자로 반드시 T를 사용하여야 하는 것은 아닙니다.) 2. 제네릭을 사용하는 이유 한번의 선언으로 다양한 타입에 재사용이 가능하다는 장점이 있습니다. 제네릭을 사용 시 타입 추론이 가능하여 해당 타입에서 사용 하지 못하는 함수나, API를 호출하면 오류를 발생시켜 오류의 사전 방지가 가능합니다. 3. 제네릭 인터페이스 공부한 내용에 의하면 TS 제네릭에는 이 외에도 타입 제한과 같은 다른 기능을 하지만, 개..
1. 클래스 기본 형태 최상단에 클래스에 사용할 속성(멤버 변수)를 모두 선언 해 주어야 합니다. (JS와의 차이점) ES6 클래스에서 static 키워드는 클래스의 정적(static) 메소드와 프로퍼티를 정의 가능합니다. 정적으로 선언 시 인스턴스가 아닌 클래스 이름으로도 호출이 가능합니다. readonly 키워드를 통해 프로퍼티 선언 시 생성자 내부에서만 값을 할당 할 수 있습니다. (상수 선언에 사용) 접근 제한자의 사용 범위는 아래와 같습니다. 2. 추상 클래스 추상 클래스를 정의할 때는 abstract 키워드를 사용하며, 직접 인스턴스를 생성할 수 없고 상속만을 위해 사용합니다. 추상 클래스는 하나 이상의 추상 메소드를 포함하며 일반 메소드도 포함할 수 있습니다. 추상 클래스를 상속한 클래스는 ..
- Total
- Today
- Yesterday
- next.js에 .gitignore가 적용되지 않을 때
- 1급 시민
- 자바스크립트 비동기 동작원리
- Next.js
- 자바스크립트 동작원리
- typescript
- next.js 환경변수
- react
- useRef
- 1급 함수
- rewrites
- Virtual Scroll
- 함수형 컴포넌트
- 타입스크립트
- zustand
- debouncing
- redirects
- array
- 시맨틱 웹
- javascript
- React로 쓰로틀링 디바운싱 구현
- 매겨변수와 인자
- 호이스팅
- vue
- 렌더링 속도 개선
- 1급 객체
- redux
- 목표 일기
- programmers
- 가상스크롤
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |