Develope Me!
[TypeScript] TypeScript의 기본 타입 본문
TypeScript 기본 타입
- string(문자열) / number(숫자) / boolean(진위)
√ 변수 타입을 선언할 때는 :를 사용하여 타입을 표기해준다.
// string
let coffee : string = "Americano";
console.log(coffee); // Americano
// number
let age : number = 20;
console.log(age); // 20
// boolean
let isAdult : boolean = true;
console.log(isAdult); // true
- array (배열)
√ 타입이 배열인 경우에는 제네릭을 사용하여 선언할 수도 있다.
let grade : number[] = [1,2,3];
let country : Array<string> = ['korea','america','china'];
console.log(grade); // [1,2,3]
console.log(country); // ["korea", "america", "china"]
- tuple (배열의 길이가 고정되고 각 요소의 타입이 지정되어 있는 배열 형식)
√ 정의하지 않은 타입이나 인덱스로 접근할 경우에는 오류가 발생할 수 있다.
let student_info : [string, number, boolean] = ['James',15,false];
console.log(student_info); // ["James", 15, false]
student_info[1].concat('@'); // Property 'concat' does not exist on type 'number'.
- enum (상수들의 집합으로 비슷한 타입의 묶음)
√ enum은 인덱스 번호로도 접근 가능하며 인덱스를 사용자의 편의에 맞춰 변경하여 사용 가능하다.
enum Os{
window = 3,
ios = 10,
Android
}
let myOs1: Os = Os.ios;
let myOs2: Os = Os['ios'];
let myOs3: string = Os[10];
console.log(myOs1); // 10
console.log(myOs2); // 10
console.log(myOs3); // ios
- any / unknown
√ any 타입은 모든 타입을 할당받을 수 있는 타입이다.
√ 자바스크립트로 구현되어 있는 코드에 타입스크립트를 점진적으로 적용할 때 활용할 수 있다.
√ 그러나 의도치 않은 형 변환이나 다른 타입의 값이 대입 될 수 있으므로 사용시 유의해야 한다.
let str1 : any = 'hello world';
let num1 : any = 20;
let arr1 : any = [1,2,3,'a','b','c',true,false];
√ unknown 타입은 모든 타입을 할당받을 수 있다는 점에서 any와 동일하나 할당된 값의 타입을 모르기 때문에 함부로 프로 퍼티나 연산을 할 수가 없다.
let unknown_val : unknown = 100;
console.log(unknown_val.length); // 'unknown_val' is of type 'unknown'.
- void (반환 값이 없는 함수의 반환 타입)
√ return 이 없거나 있어도 반환하는 값이 없으면 void로 지정해준다.
function sayHello():void{
console.log('hello');
}
- never (함수의 끝에 절대 도달하지 않는 타입)
√ 에러 함수를 사용할 때나 무한 루프 함수에서 사용 가능하다
(never 타입을 사용하는 케이스에 대한 추가적인 학습 필요해보임...)
let val : never;
val = 12; // Type 'number' is not assignable to type 'never'.
참고 사이트: https://yamoo9.gitbook.io/typescript/
TypeScript 가이드북 - TypeScript Guidebook
타입(Types)을 사용하면 JavaScript 애플리케이션을 개발할 때 정적 타입 검사 및 코드 리팩토링과 같은 생산성 높은 개발을 수행할 수 있습니다. 타입 설정이 필수는 아니지만, 설정할 경우 컴파일
yamoo9.gitbook.io
'JavaScript > TypeScript' 카테고리의 다른 글
[TypeScript] TypeScript 정의 및 특징 (1) | 2023.12.11 |
---|