(1) 선언 방식
- 변수명 뒤에 타입을 명시한다.
- 타입은 대소문자를 구별한다. TypeScript에서 제공하는 타입은 모두 소문자이다.
let a: number = 1; // a는 number타입이다.
let b: number = false; // error 타입이 맞지 않아 오류
(2) 데이터 타입 종류
- JavaScript의 타입은 그대로 사용할 수 있으며, 추가적인 타입은 array, tuple, enum, any, void, never가 있다.
- array : 배열
- tuple : 고정된 요소의 수만큼 타입을 미리 선언 후 배열을 표현한 것이다.
- enum : 열거형. 숫자 값 집합에 이름을 지정한 것이다.
- any : 타입 추론이 불가능 하거나 타입 체크가 필요 없는 변수에 사용. 어떤 타입의 값이라도 할당 가능
- void : 일반적인 함수에서 반환 값이 없을 경우 사용한다.
- never : 절대 발생하지 않는 값
- union : OR연산자와 같이 타입을 여러개 연결시키는 방식이다.
let a: boolean = false; // boolean
let b: null = null; // null
let c: undefined = undefined; // undefined
let d: number = 6; // number
let e: string = "e"; // string
let f: string = `f`; // ES6 템플릿 문자열
let g: string = `a, b, c, d, ${e}.`; // ES6 템플릿 대입문
const h: object = {}; // object
let i: any[] = [1, 'two', true]; // array
let j: Array<number> = [1, 2, 3]; // 제네릭 배열 타입
let k: [string, number]; // tuple
tuple = ['wangi', 26]; // OK
tuple = [26, 'wangi']; // Error
tuple = ['wangi', 26, 'eddy', 25]; // Error
tuple.push(true); // Error
======================================================
enum l {a, b, c}; // enum
let m: l = l .b;
console.log(m); // 1
enum n{a = 1, b, c};
let o: n = n.b;
console.log(o); // 2
enum p{a= 1, b= 2, c= 4};
let q: p = p.c;
console.log(q); // 4
=======================================================
let r: any = 4; // any타입에 number 할당
r= 'wangi'; // any타입에 string 할당
r= false; // any타입에 boolean 할당
function s(): void {
console.log("wangi");
}
function t(): never { // never : 결코 발생하지 않는 값
while (true) {}
}
function u(x: string | number) { // |을 사용해 유니온타입설정 x의 타입은 string이거나 number이다.
}
- string타입은 소문자로 시작하지만 대문자로 시작하는 String 타입은 String래퍼 객체 타입을 의미한다.
const a: Date = new Date(); // Date 타입
const b: HTMLElement = document.getElementById('d'); // HTMLElement 타입
class Person { }
const d: Person = new Person(); // Person 타입
- 동적 타이핑도 가능하지만 오류 발생률이 높다.
(3) 타입 추론
- 타입 선언이 생략되면 값이 할당되는 과정에서 동적으로 타입이 결정되는 것
- 타입 추론으로 타입이 결정된 후 다른 타입을 할당하면 에러가 발생한다.
- 타입 추론이 불가능 하면 any타입이 된다.
let a = 123; // a는 number 타입
a = 'hi'; // error a는 number타입으로 결정됨
let b; // let b: any와 같음
b = 'wangi';
console.log(typeof b); // string
foo = true;
console.log(typeof b); // boolean
'TypeScript' 카테고리의 다른 글
setState 타입 지정의 차이 (0) | 2025.03.20 |
---|---|
Function (0) | 2023.09.07 |
Interface (0) | 2023.09.05 |
타입 앨리어스 (0) | 2023.09.04 |
Generic (0) | 2023.09.01 |