Develope Me!
[TypeScript] TypeScript의 기본 타입 본문
타입스크립트는 자바스크립트와는 달리 엄격하게 타입을 관리하는 언어다.
변수를 선언할 때 명시적으로 타입을 설정할 수 있고 자바스크립트를 포함하는 슈퍼셋(Superset)이기 때문에 자바스크립트가 지원하는 데이터타입을 모두 사용할 수 있다. 뿐만 아니라 클래스, 인터페이스 등을 타입으로 설정하는 것도 가능하다.
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/
'JavaScript > TypeScript' 카테고리의 다른 글
[TypeScript] TypeScript 정의 및 특징 (1) | 2023.12.11 |
---|
Comments