본문 바로가기

Programming/TypeScript6

[이펙티브 타입스크립트] 타입시스템 - 1 타입 시스템 타입스크립트를 설치하면, 아래 두 가지를 실행할 수 있다. 1. 타입스크립트 컴파일러(tsc) 2. 단독 실행가능한 타입스크립트 서버(tsserver) tsserver는 우리가 사용하는 편집기에 코드 자동완성, 검색, 리팩터링 등의 기능을 제공해줄 수 있다. 코드의 생산성과 품질을 높이려면, 편집기에서 타입스크립트 언어 서비스를 적극적으로 활용하는 것이 좋다. 타입은 값들의 집합이다 모든 변수는 런타임에 각자 고유한 값을 가진다. 하지만 코드가 실행되기 전 타입스크립트가 오류를 체크하는 순간엔 타입을 가진다. 타입을 곧 '할당 가능한 값들의 집합'이라고 생각하면 된다. type A = 'A'; type B = 'B'; type Twelve = 12; type AB = 'A' | 'B'; ty.. 2023. 7. 26.
[이펙티브 타입스크립트] 타입스크립트를 알아보자 친구랑 같이 하던 사이드 프로젝트가 드디어 끝이 났다. 이제 남는 점심시간이 생겨서 계속 미뤄뒀던 이펙티브 타입스크립트 책을 읽으며 정리하려고 한다. 현재 타입스크립트로 코드를 작성하면서, 이게 맞나? 이게 제일 효율적인 방식인가? 더 나아가 이게 효율적인 방식인가? 에 대한 의문은 항상 가지고 있는 것 같다. 질 좋은 코드를 작성하려면, 좋은 교본을 많이 봐둬야한다고 생각한다. 그래서 이 책을 선택했고, 정말 책 이름 그대로 이펙티브하게 타입스크립트를 써보고자 책 스터디를 진행한다. 예제 코드는 아래 깃헙 링크에 차곡차곡 쌓일 예정이다. https://github.com/do-not-do-that/effective-typescript do-not-do-that/effective-typescript ef.. 2023. 7. 13.
[ NestJS ] 의존성 문제 발생 케이스 기록 A 모듈의 AA 서비스가 존재한다. B 모듈의 BB 서비스가 존재한다. BB 서비스 내에서 AA 서비스를 이용하기 위해 B 모듈에서 A 모듈을 import 했지만, AA 서비스에서 직접적으로 Inject 하는 레포지토리들이 존재해 자꾸만 B 모듈에 provider 에 해당 레포지토리들을 추가하라고 한다. 이 경우 A 모듈에서 AA 서비스를 export 해주면된다. 그럼 외부에서 AA 서비스를 이용할 수 있게된다. 2022. 9. 28.
구조적 서브타이핑 / 잉여 속성 체크 아침에 유튜브 보면서 출근준비하다가 내가 의아해했던 부분을 설명해주셔서 안잊으려고 급하게 포스팅한다. 대체 무슨 기준으로 구조적 서브타이핑이 적용되고, 잉여 속성 체크가 적용되는 것일까? 여기서 구조적 서브타이핑은 상위와 하위의 개념으로, 상위의 개념이 하위를 포함하고 있는것이다. 구조적 서브타이핑에서는 하위가 다른 어떤 프로퍼티를 가지고 있는지 관심이 없다. 그저 상위의 프로퍼티만 가지고 있으면 된다. 하지만 잉여 속성 체크는 그에 반해 상위에 없는 프로퍼티를 가지면 에러를 발생시킨다. 이 둘의 발동 조건은 바로 객체 리터럴을 사용하냐, 사용하지 않느냐에 따라 나뉜다. interface box { color: string; } // 잉여 속성 체크 box({ color: "red", other: tru.. 2022. 9. 21.