타입스크립트 - 타입스크립트 - 기본
타입스크립트
자바스크립트에 타입을 부여한 언어
동적인 자바스크립트는 런타임동작에 타입 오류를 확인하지만, 정적인 타입스크립트는 컴파일(자바스크립트로 변환)단계에서 오류를 확인함
- 자바스크립트 코드를 단순화하여 더 쉽게 읽고 디버그할 수 있도록 도와줌
- 코드를 더 쉽게 읽고 이해할 수 있음
- 코드 유형 검사를 통해 자바스크립트를 작성할 때 개발자가 일반적으로 겪는 버그를 피하는데 도움을 줌
타입시스템
- 개발 환경에서 에러를 잡는 것을 도와줌
- 타입 annotations를 사용해 코드를 분석할 수 있음
- 오직 개발환경에서만 사용
- 성능과는 관계가 없음
ENUM: 열거형
1
2
3
4
5
6
enum PrintMedia{
Newspaper, // 0
Newsletter, // 1
Magazine, // 2
Book // 3
}
1
2
3
4
5
6
enum PrintMedia{
Newspaper = 1, // 1
Newsletter = 50, // 50
Magazine = 55, // 55
Book // 56
}
언어 코드를 정의하는 코드를 작성할 때, 언어의 집합을 만들 때도 enum을 사용
1
2
3
4
5
6
7
8
9
export enum = LanguageCode {
korean = 'ko',
english = 'en',
japanese = 'ja',
chinese ='zh',
spanish = 'es'
}
const code: LanguageCode = LanguageCode.english // 'en'
ENUM과 객체의 차이 ENUM | 객체
선언할 때 이후에 변경할 수 없음 새로운 자유롭게 추가 가능 문자열 혹은 숫자만 허용 모든 타입 허용
Never
어떤 일이 절대 일어나지 않을 것이라고 확신할 때 사용
- 리턴 값을 절대로 내보내지 않음
- 에러를 던지거나 무한루프에 빠질 때 사용-
1
2
3
4
5
6
7
8
function throwError(errorMsg: string): never {
throw new Error(errorMsg);
}
function keepProcessing(): never {
while (true) {
console.log("무한루프");
}
}
type annotaion
개발자가 타입을 타입스크립트에게 직접 말해주는 것 const rate :number = 5
type inference
타입스크립트가 알아서 타입을 추론하는 것 const rate = 5
타입을 추론하지 못해 type annotaion을 해줘야할 때
any 타입을 리턴할 때
1 2 3
const json = '{"x":4,"y":7}'; const coordinates = JSON.parse(json); console.log(coordinates); // coordinates: any
변수 선언을 먼저하고 나중에 초기화하는 경우
변수 선언과 동시에 초기회하면 타입을 추론하지만, 선언을 하고 나중에 값을 초기화할 때는 추론하지 못한
1 2 3 4
let greeting; greeting = "hello"; // any let greeting = "hello"; // string
변수에 대입될 값이 일정하지 못하는 경우
여러 타입이 지정되어야할 때는 or로 여러 타입을 애노테이션을 해줌 1 2 3 4 5 6 7
let num = [-7, -2, 10]; let numAboveZero: boolean | number = false; for (let i = 0; i < num.length; i++) { if (num[i] > 0) { numAboveZero = num[i]; } }
This post is licensed under CC BY 4.0 by the author.