[Typescript] 기본 타입 정리 (primitive types) / union type, any, unknown
설치
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 타입이여서 오류를 뿜는다.