대수 타입 여러개의 타입을 합성해서 새롭게 만들어낸 타입을 말한다. 대수타입에는 합집합 타입과 교집합 타입이 존재한다. 합집합(Union) 타입 아래와 같이 string과 number의 union타입일 경우 두 타입을 모두 넣을 수 있다. let a : string | number a = 1 a = "hello" 다음은 객체 타입의 union 타입이다. 위와 마찬가지로 Dog와 Person의 union 타입에는 두 객체를 모두 넣을 수 있다. 또한 두 객체의 property를 모두 합한 타입 또한 가능하다. // 겍체타입 type Dog = { name:string, color: string, } type Person = { name:string, language: string, } type Union1..
타입은 집합이다? 타입스크립트는 동일한 속성과 특징을 갖는 여러개의 값들을 모아둔 집합이다! 따라서 다음과 같이 다른 타입들과의 포함관계를 가진다. 타입 호환성 어떤 타입을 다른 타입으로 취급해도 괜찮은지 판단하는 것이다. 위의 코드와 같이 num2는 number 리터럴 타입이므로 number 타입인 num1에 대입(up cast)이 가능하다. 하지만 더 큰 타입의 변수를 더 작은 타입의 변수에 넣을 수 없으므로 num1을 num2에 대입(down cast)하는 것은 불가능하다. 타입 계층도 아래의 타입 계층도를 통해 타입의 포함관계를 파악할 수 있다. 단, 여기서 예외가 있는데, 바로 any 타입이다. any 타입은 치트키 같은 타입으로 자신보다 윗 계층인 unkonwn이 any로 downcast가 가..
기본 타입 타입스크립트가 자체적으로 제공하는 타입 (내장 타입) 타입스크립트의 각각의 타입들은 부모, 자식관계를 이루며 계층구조를 가진다. 원시타입 (Primitive Type) 하나의 값만 저장하는 타입 : number, string, boolean, null, undefined // number let num1:number = 123; // 타입 주석(annotation) let num2:number = -123; let num3:number = 0.123; let num4:number = -0.123; let num5:number = Infinity; let num6:number = -Infinity; let num7:number = NaN; // string let str2:string = "he..
이번 프로젝트에서 타입스크립트를 적용하기 위해 처음 공부를 시작한다 항상 자바스크립트를 쓰면서 더 안정성있는 타입스크립트를 배우고 싶었는데 이제야 마음먹고 시작한다! 실습환경 구성 npm init // node.js 패키지 초기화 // nodejs의 내장 기능들에 대한 타입 정보 // console과 같은 node.js의 기본 기능에 대한 타입을 알기위해 필요 npm i @types/node npm i typescript -g // typescript 컴파일러 (전역으로 설치) tsc -v // 컴파일러 버전 확인 컴파일 .ts 파일은 컴파일을 하면 결과물이 .js 파일로 나온다. 아래와 같이 index.ts를 컴파일 하면 같은 의미를 가진 index.js 파일로 변환된다. 이렇게 컴파일하는 과정에서 미..