Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- react native bridge
- 이펙티브 타입스크립트
- 비동기
- BOUNDED CONTEXT
- DDD
- js
- 빌딩 블록
- nextjs route code
- 속도개선
- TS
- react native 내부 구조
- 애그리게이트
- nextJS
- in app purchase
- 이벤트 시스템
- 정처기 준비물
- typeScript
- rn
- std::char_traits<unsigned char>
- nextjs 라우팅
- nextjs사용이유
- Aggregate
- react natvie
- 불변식
- 정처기 자격
- rniap
- 타입스크립트
- IAP
- HTML
- 정보처리기사
Archives
- Today
- Total
nika-blog
타입스크립트의 타입시스템2 - 이펙티브 타입스크립트 본문
13. 타입과 인터페이스의 차이점 알기
유니온 |
유니온 타입은 있지만, 유니온 인터페이스는 없다.
튜플은 type 으로
인터페이스로 튜플과 비슷하게 구현하면, 튜플에서 사용가능한 concat 같은 메서드를 사용 불가하다.
보강(augment)가능
인터페이스는 선언 병합이 가능하다.
단, 프로젝트 내부적으로 사용되는 타입에 선언 병합이 발생하는 것은 잘못된 설계이다.
ex.
interface IState {
name: string;
capital: string;
}
interface IState {
population: number;
}
const wyoming: IState = {
name: 'Wyoming',
capital: 'Cheyenne',
population: 500000
}
타입을 사용하면 좋은 경우
- 프로퍼티가 추가되는 것을 원하지 않을 때
- 복잡한 타입을 사용해야 할 때
- 일관되게 타입을 선언하는 코드베이스
인터페이스를 사용하면 좋은 경우
- API에 대한 타입 선언 작성할 때
-> API가 변경될 때 사용자가 인터페이스를 통해 새로운 필드를 병합할 수 있어 유용
14. 타입 연산과 제너릭 사용으로 반복 줄이기
- DRY 원칙을 타입에도 최대한 적용해야 합니다.
-> 음.. 오버 엔지니어링일수도 있을 것이라는 생각이 듭니다. - 제너릭 타입은 타입을 위한 함수와 같습니다.
15. 동적 데이터에 인덱스 시그니처 사용하기
- 인덱스 시그니처는 사용하지 않으면 제일 좋습니다.
16. number 인덱싱 시그니처보다는 Array, 튜플, ArrayLike 사용하기
- 타입이 불확실하다면, (대부분의 브라우저와 자바스크립트 엔진에서) for-in 루프는 for-of 또는 C 스타일 for 루프에 비해 몇 배나 느립니다.
- 배열은 객체이므로 키는 숫자가 아니라 문자열입니다. 인덱스 시그니처로 사용된 number 타입은 버그를 잡기 위한 순수 타입스크립트 코드입니다.
- 인덱스 시그니처에 number 를 사용하기보다 Array나 튜플, 또는 ArrayLike 타입을 사용하는 것이 좋습니다.
17. 변경 관련된 오류 방지를 위해 readonly 사용하기
- 만약 함수가 매개변수를 수정하지 않는다면 readonly 로선언하는 것이 좋습니다.
-> 무조껀 매개변수를 readonly로 선언하는 lint 옵션이 있다면 키고 싶습니다. - readonly 는 얕게 동작합니다.
18. 매핑된 타입을 사용하여 값을 동기화하기
(옮긴이) 실패에 닫힌 방법은 오류 발생 시에 적극적으로 대처하는 방향을 말합니다. 반대로 열린 방법은 오류 발생 시에 소극적으로 대처하는 방향입니다. 만약 보완과 관련된 곳이라면 실패에 닫힌 방법을, 기능에 무리가 없고 사용성이 중요한 곳이라면 실패에 열린 방법을 사용하는 것이 좋습니다.
- 인터페이스에 새로운 속성을 추가할 때, 선택을 강제하도록 매핑된 타입을 고려해야 합니다.
참고: 이펙티브 타입스크립트
http://www.yes24.com/Product/Goods/102124327
이펙티브 타입스크립트 - YES24
타입스크립트는 타입 정보를 지닌 자바스크립트의 상위 집합으로, 자바스크립트의 골치 아픈 문제점들을 해결해 준다. 이 책은 《이펙티브 C++》와 《이펙티브 자바》의 형식을 차용해 타입스
www.yes24.com
'FE > typescript' 카테고리의 다른 글
any다루기 - 이펙티브 타입스크립트 (0) | 2023.02.28 |
---|---|
타입설계 - 이펙티브 타입스크립트 (0) | 2023.02.14 |
타입추론 - 이펙티브 타입스크립트 (0) | 2023.02.07 |
타입스크립트의 타입 시스템1 - 이펙티브 타입스크립트 (0) | 2023.02.02 |
타입스크립트 알아보기 - 이펙티브 타입스크립트 (0) | 2022.12.27 |