목록언어/Type Script (17)
Lsiron
Type Script에서 사용되는 데코레이터 문법에 대해 알아보자. nest.js 를 사용할 때 온통 @ 투성이로 되어있어서 무엇인가 했는데 데코레이터 문법이였다. 먼저 데코레이터의 사용법에 대해 간단하게 알아보자. Type Sciprt에서 데코레이터는 실험적인 기능이다. (정식기능 아님) 그렇기 때문에, 데코레이터를 사용하기 위해서는 tsconfig.json파일에 아래 코드를 입력 해 주어야 한다.{ "compilerOptions": { "experimentalDecorators": true, }, } 위 코드는 데코레이터 옵션을 활성화 시켜준다. 이제 아무 ts 파일에 가서 class를 하나 만들어보고 출력해보자.class Siron { name = '아니 무슨' construc..
TypeScript에서 조건부 타입(Conditional Types)은 특정 조건에 따라 타입을 다르게 결정하는 기능을 제공한다. 이와 함께 infer 키워드를 사용하면 타입 추론을 통해 조건부 타입을 더욱 강력하게 사용할 수 있다. 각각에 대해 한번 자세히 알아보자. 조건부 타입 조건부 타입은 기본적으로 T extends U ? X : Y 형태(삼항연산자)로 작성되며, 이는 "만약 T가 U에 할당 가능하다면 X 타입을 사용하고, 그렇지 않으면 Y 타입을 사용한다"는 의미이다. 예시를 통해 알아보자. type Lsiron = T extends string ? string : unknownlet siron:Lsiron // 타입이 string이 된다.let iron:Lsiron // 타입이 unkn..
index signatureIndex Signature 는 객체의 속성 키가 동적으로 정의될 수 있는 경우 유용하다. Index Signature 는 객체의 속성 이름이 특정 타입이고, 그 속성의 값이 다른 특정 타입임을 지정한다. 이는 객체가 동적 프로퍼티를 가질 때, 예를 들어 동적으로 추가되는 속성의 타입을 정의하고 싶을 때 매우 유용하다. 즉, 객체의 속성이 여러개 일 때, 한번에 타입을 지정 할 수 있는 방법이 바로 index signature를 사용하는 방법이다. 기본사용interface StringNumberDictionary { [key: string]: number;}const scores: StringNumberDictionary = { alice: 10, bob: 15, c..
implements ?implements 는 class 문법에 사용하는 키워드이다. 이때 함께 동반되는게 바로 interface 키워드 인데, interface 는 Object의 타입을 지정할 때만 사용 할 수 있는게 아니라 class 타입을 체크할 때도 사용 할 수 있다. 그러면 implements와 interface 이 두 개로 어떻게 class의 타입을 체크할 때 쓸 수 있을까? 먼저, interface는 class가 따라야 하는 속성과 타입을 정의한다. 다음으로, implements 는 class가 해당 interface를 잘 따르면 에러가 발생하지 않도록 하고 해당 interface를 따르지 않으면 에러가 발생하도록 한다. 위와 같은 원리로 class의 타입을 체크하는 것 이다. 즉, clas..