Typescript

[Typescript] 기본 타입 정리 (primitive types) / union type, any, unknown

이채야채 2022. 2. 4. 18:53

설치


1. 터미널에 명령어 : npm install -g typescript

2. tsconfig.json 만든다.

3. index(파일명).ts 만들고 코딩시작

4. 터미널에 tsc -w해둔채로 타입스크립트를 실시간으로 컴파일해준다. (브라우저는 타입스크립트를 못읽는다. 자바스크립트로 변환) 

 


변수만들기


변수에 타입지정가능

콜론을 붙이고 타입명 기입.

 

타입 :  string, number, boolean, null, undefined ...

let 이름 : string = "kim";

 

이름 = 1234; 해버리면? 🚨에러가 나버림.

 

변수에 실드 씌우는것

 

let 이름: string = "sophie";
let 나이: number = 50;
let 결혼했니: boolean = true;
let 회원들: string[] = ["lee", "byun"];
let 학생들 :{member1 : string, member2: string} = {member1:'kim', member2: 'park'}

 

 

온갖곳에 다 타입지정할 필요가없다. ㅋㅋㅋ 커서올리면 타입지정을 알아서해준다.

타입지정 문법 생략가능.

 


타입을 정하기 어려울때


문자 or 숫자 들어올수 있는 변수는 어떻게 만드는가?

 

Union type -> 타입 두개를 합친 새로운 타입 만들기

 

or연산자 한개로 사용해본다. 

 

//Union 
let 회원 :(number | string) = 123;
let 회원님들 :(number | string)[]= [1,'2',3];
let 오브젝트 :{a: string | number} = {a: 123}​

 

Any 문법 : 타입 쉴드해제 -> 타입스크립트 쓰는 의미가 없어지기에 남용하지말것

 

//any 타입
let 애니 : any;
애니 = 123;
애니 = "123";
애니 = [];

 

Unknown 타입 : 모든 자료형 허용해줌

 

let 언노운 : unknown;
언노운 =123;
언노운 = {};
언노운 = [1,2,3];

 

💡 Unknown이 Any보다 안전한 이유?

 

let 변수1 : string = 언노운  => 에러발생 안됨
let 변수1 : string = 애니 => 괜찮음

 

any가 보이면 쉴드가 쥭음...내죽음을..알리지말...

아무튼 any는 오만가지 다 허락해줌

unknown이 더 안정성이있어서 오염방지~!

 


타입스크립트의 엄격함


-간단한 수학연산도 타입이 맞아야된다.

 

정확한 타입끼리에 연산만 허용해준다.

 

 

얘는 왜이래요?

 

이채나이 : string | number <- 이것은 새로운 타입이다. 

 

타입스크립트는 엄격한거좋아함

 

string 타입 +1 (허용)

number 타입 +1 (허용)

string | number 타입 +1 (안돼)

 

얘도 여전히 unknown 타입이여서 오류를 뿜는다.