러닝타입스크립트 2장
2023. 4. 5. 23:58ㆍ타입스크립트
👀타입👀
"타입"은 자바스크립트에서 다루는 형태에 대한 설명이다.
여기서 "형태"란 값에 존재하는 속성과 메서드 그리고 내장되어 있는 typeof 연산자가 설명하는 것을 의미한다.
타입스크립트에는 아래의 일곱 가지 타입을 원시타입으로 정의한다.
- null
- undefined
- boolean // true 혹은 false
- string // "문자열" ,"123"...
- number // 12134564789, 2.4
- bigint // 0n, 2n, -4n, ...
- symbol // Symbil(), Symbol("hi"), ...
※ Boolean, Number, String과 같은 래퍼 객체와는 다릅니다.
타입스크립트는 마우스 오버로 문자열 변수의 타입을 보여준다.
타입추론
타입스크립트는 초깃값으로 변수타입을 유추한다.
//let myName = string
let myName = "parksubeom"
// let phoneNumber = number 일 줄 알았으나 0이 맨 앞에 오는 숫자는 8진수로 인식한다.
let phoneNumber = 010811077
//ley bool = string | boolean
let bool = 5-3 === 2 ? true : "false"
타입 시스템
값의 사용법이 타입과 일치하지 않으면 오류를 발생한다.
let str = "string"
let num = 3
str.length;
num.length; // Property 'length' does not exist on type 'number'.
오류 종류
타입스크립트에서 주로 마주하게 될 오류는 두 가지다.
- 구문오류 : 타입스크립트가 자바스크립트로 변환되는 것을 차단한 경우
- 타입오류 : 타입 검사기에 따라 일치하지 않은 것이 감지된 경우
1. 구문 오류
TypeScript가 코드로 이해할 수 없는 잘못된 구문을 감지할 때 발생한다.
구문 오류가 발생하는 경우에는 컴파일을 중지한다.
( 즉, JavaScript 파일을 생성하지 않습니다. )
let let let // Error : ',' expected.
2. 타입 오류
TypeScript의 추론으로 타입에서 오류를 발견한 경우 발생한다.
일반적으로 타입 오류가 발생했다고 컴파일을 중지하지는 않는다.
(하지만 어떤 프로젝트는 구문 오류뿐만 아니라 모든 타입스크립트 타입 오류가 수정될 떄까지 코드 실행을 차단하기도 한다. 이러한 경우는 굉장히 성가시기때문에 tsconfig.json을 통해서 차단하지 않도록 설정한다.)
대부분은 런타임에서 오류가 발생하기 때문에 타입 오류를 해결하고 컴파일하는 것이 좋다.
// myValue1: string
let myValue1 = "string";
// Error: 'toFixed' 속성이 'string' 형식에 없습니다. 'fixed'을(를) 사용하시겠습니까?
myValue1.toFixed();
// myValue2: number
let myValue2 = 2;
// Error: 'number' 형식에 'length' 속성이 없습니다.
myValue2.length;
// myValue3: string | number
let myValue3 = Math.random() > 0.5 ? "string" : 2;
// Error: 'string | number' 형식에 'toFixed' 속성이 없습니다. 'string' 형식에 'toFixed' 속성이 없습니다.
myValue3.toFixed();
// Error: 'string | number' 형식에 'length' 속성이 없습니다. 'number' 형식에 'length' 속성이 없습니다.
myValue3.length;
'타입스크립트' 카테고리의 다른 글
러닝타입스크립트 1장 (0) | 2023.04.05 |
---|