Boolean
true, false로 이루어진 타입.
const bool: boolean = false
Number
TypeScript는 16진수, 10진수 리터럴에 더불어, ECMAScript 2015에 소개된 2진수, 8진수 리터럴도 지원한다.
const decimal: number = 6;
const hex: number = 0xf00d;
const binary: number = 0b1010;
const octal: number = 0o744;
String
let color: string = "blue";
color = 'red';
// color = 0xf00d // 에러
백틱(템플릿 문자열)으로 감싸면 숫자도 넣을 수 있다.
const name: string = 'kim';
const age: number = 20;
const person: string = `he is ${name}, ${age} years old`
Array
const list: number[] = [1, 2, 3, 4];
또 다른 방법은 제네릭(Generic) 배열 타입 사용.
const list: Array<number> = [1, 2, 3, 4];
Tuple
튜플 타입을 사용하면, 요소의 타입과 개수가 고정된 배열을 표현할 수 있다.
단, 요소들의 타입이 모두 같을 필요는 없다.
예를 들어, number, string 이 쌍으로 있는 값을 나타내고 싶을 수 있다.
// 튜플 타입 선언
let stringNumber: [string, number];
// 초기화
stringNumber = ["hello", 10]; // 성공
// 잘못된 초기화
stringNumber = [10, "hello"]; // 오류
substring[2] = 'js' // 2번 인덱스는 없기 때문에 에러.
Enum
Enum은 기본적으로 0부터 시작하여 번호를 매긴다.
enum name {kim, lee, park}
const k: string = name[1]
console.log(k) // lee
0이 아닌 다른 숫자부터 번호를 매기도록 할 수 있다.
enum name {kim = 1, lee, park}
const n: string = name[3]
console.log(n) // park
모든 값을 직접 설정할 수도 있다.
enum name {kim = 1, lee = 2, park = 5}
const n: string = name[5]
console.log(n) // park
Any
어떤 타입이든 가능. (void와 반대)
let num: any = 1;
num = "is string"; // 가능
num = false; // 가능
Void
어떤 타입도 존재할 수 없음. (any와 반대)
보통 함수에서 반환 값이 없을 때 반환 타입을 표현하기 위해 쓰인다.
const log = (): string => { // 불가능
console.log("value"); // return이 없으면 void 또는 any 타입이어야한다.
}; // 에러 내용 : 선언 형식이 'void'도 'any'도 아닌 함수는 값을 반환해야 합니다.
const log = (): string => { // 불가능
return console.log("value"); // return이 있어도 return은 타입을 가진 값이 되어야한다.
}; // 에러 내용 : 'void'형식은 'string'형식에 할당할 수 없습니다.
const log = (value : string): string => { // 가능
return value;
};
const log = (): string => { // 가능
return "value";
};
const log = (): void => { // 가능
console.log("value");
};
const log = (): string
또는 const log = (): void
의 string, void부분(함수의 리턴 타입)은 생략이 가능하다.
Null 과 Undefined
둘 다 자신의 타입 이름으로 사용
// 이 밖에 이 변수들에 할당할 수 있는 값은 없다.
let u: undefined = undefined;
let n: null = null;
Object
object는 원시 타입이 아닌 타입을 나타내는데 number, string, boolean, bigint, symbol, null, 또는 undefined 가 아닌 나머지를 의미한다.
function obj(o: object | number): void;
obj({ item: 0 }); // 가능
obj(1); // 가능
obj(null); // 오류
obj("string"); // 오류
obj(false); // 오류
obj(undefined); // 오류
잘 읽고 갑니다 ^^