일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 커스텀
- 레이아웃쪼개기
- JS console
- 개발콘텐츠
- typescript
- returnType
- React Native
- 2022
- react
- NonNullable
- const 단언문
- 반복줄이기
- vue.js
- Chart.js
- reactjs
- 폰트적용하기
- 리액트
- 성능최적화
- CSS
- utilty type
- TSDoc
- click and drag
- 티스토리꾸미기
- 타입좁히기
- React.js
- 타입스크립트
- 제네릭
- javascript
- 공통컴포넌트
- 누구나 자료구조와 알고리즘
- Today
- Total
목록제네릭 (3)
몽땅뚝딱 개발자
◽ Readonly - Readonly는 속성을 읽기만 가능하도록 설정하여 매개변수가 변경되는 것을 방지한다. - 변경이 발생하는 코드를 쉽게 찾을 수 있으며, 변경하면서 발생하는 오류를 방지할 수 있다. - 단, Readonly는 얕게 동작하므로 깊은(deep) readonly 타입이 필요하다면 ts-essentials에 DeepReadonly 제네릭을 사용하면 된다. interface Outer { inner: { x: number; } } // 이렇게도 적을 수 있다. // const o: { readonly Outer } const o: Readonly = { inner: { x: 0 } }; // 할당할 수 없다. o.inner = { x: 1 }; // 하지만 이건 가능한데, readonly가..
◽ Exclude T에 지정된 타입들 중 U에 나열된 타입들은 제외하여 정의한다. /** * Exclude from T those types that are assignable to U */ type Exclude = T extends U ? never : T 예제 1. type TChar = "a" | "b" | "c" | "d" type T00 = Exclude; // "b" | "d" 예제 2. interface IUser { name: string age: number birth: Date death: Date } type User = Exclude // type User = "name" | "age" | "birth" ◽ Extract // Extract: T에 지정된 타입들 중 U에 나열된 타..
◽ 제네릭 사용하기 function logText(text: T):T { console.log(text); return text; } logText('안녕') ◽ 제네릭의 장점 유니온을 사용하는 경우 명확한 변수타입이 지정되지않아 생기는 문제들이 있었다. 제네릭은 호출시점에 타입을 지정하므로 이런 문제점을 해결할 수 있다. function logText(text: T):T { console.log(text); return text; } logText('안녕') logText(123) logText(true) ◽ 제네릭 적용하기 [before] // 이렇게 선언하는 경우 type에 따라 여러개의 인터페이스를 만들어주어야 한다. // 유지보수면에서 효율성이 떨어진다. interface DropdownStr ..