[TS] type의 선언과 종류
1 TS type 종류
우선 TS의 type을 표로 살펴보자
타입 | 설명 | 예시 |
---|---|---|
number |
숫자 | let age: number = 25; |
string |
문자열 ( 템플릿 문자열 포함) | let name: string = "John"; |
boolean |
불리언 | let isStudent: boolean = true; |
array |
배열 | ① let numbers: number[] = [1, 2, 3]; ② let numbers: Array<number> = [1, 2, 3]; |
tuple |
크기와 타입이 고정된 배열, 각 요소의 타입 지정 | let person: [string, number] = ["John", 25]; |
enum |
특정 값을 고정하는 또다른 독립된 자료형, 열거형 | enum Color { Red, Green, Blue }; |
any |
어떤 타입이든 허용 (자주 사용하지 말것) | let data: any = 123; |
void |
반환 값이 없음 | function logMessage(): void { console.log("Hello!"); } |
null |
값이 null | let value: null = null; |
undefined |
값이 undefined | let value: undefined = undefined; |
object |
객체 타입 (배열, 함수 포함) | let user: object = { name: "John", age: 25 }; |
union |
2개 이상의 타입을 허용(or의 의미) | number = "text"; |
2. TS type
2.1 TS type 선언
타입을 지정할 땐
:
을 사용한다.
let a: number = 3;
a의 type을 number로 지정했으니 string type 작성시 오류가 나는 모습을 볼 수 있다.
아래와 같이 여러 개의 type 지정 가능하다.
let a: number | string = 4;
2.2 TS type 사용
2.2.1 type - array
array의 type은 두 가지 방법으로 사용할 수 있다.
① 배열 요소들을 나타내는 타입 뒤에 []을 사용하는 방법
// 오직 숫자 아이템만 허용
let numbers: number[] = [1, 2, 3];
// 모든 데이터 타입을 아이템으로 허용 (any 타입)
let someArr: any[] = [0, 1, {}, [], "str", false];
// 특정 데이터 타입만 아이템으로 허용 (union 타입)
let selects: (number | string)[] = [102, "apple"];
② Array<> 배열 타입을 사용하는 방법
let numbers: Array<number> = [1, 2, 3];
2.2.2 type - object
함수의 object는 객체 뿐만 아니라 배열, 함수 까지 object로 포함한다.
function addNumber(a: number, b: number): number {
return a + b;
}
addNumber(3, 7);
TypeScript는 코드의 가독성을 향상시키기 위해 alias(별칭)과 interface 문법을 도입했다.
// 객체 타입 선언
type User = {
name: string;
age: number;
isAdmin: boolean;
};
// 객체 생성 및 할당
let user1: User = {
name: "sieun",
age: 23,
isAdmin: false,
};
// interface 키워드를 사용하여 객체의 구조를 정의
interface User {
name: string;
age: number;
}
interface Admin extends User {
isAdmin: boolean;
}
댓글남기기