데이터 유형이 참과 거짓을 나타낼 때 사용합니다.
let isDone: boolean = false;
데이터 유형이 숫자일 때 사용합니다.
TypeScript는 16진수 및 10진수 외에 2진수 및 8진수도 지원합니다.
let decimal: number = 6;
let hex: number = 0xf00d;
let binary: number = 0b1010;
let octal: number = 0o744;
let big: bigint = 100n;
데이터 유형이 문자열일 때 사용합니다.
JavaScript와 마찬가지로 큰 따옴표(") 또는 작은 따옴표(')를 사용하여 표기합니다. 템플릿 문자열도 사용 가능합니다.
let color: string = "blue";
color = 'red';
// 템플릿 문자열
let fullName: string = `Bob Bobbington`;
let sentence: string = `Hello, my name is ${fullName}.
배열 유형일 경우 두 가지 방법으로 작성할 수 있습니다.
첫 번째는 []로 해당 유형을 표기할 수 있습니다.
let list: number[] = [1, 2, 3];
두 번째는 제네릭을 사용하여 표기할 수 있습니다.
let list: Array<number> = [1, 2, 3];
튜플은 여러 타입을 함께 지정할 수 있는 복합 배열 타입입니다.
let x: [string, number];
정의한 인덱스로 접근하지 않는 경우 오류가 발생합니다.
// Initialize it
x = ["hello", 10]; // OK
// Initialize it incorrectly
x = [10, "hello"]; // Error
enumerated type(열거형 타입)을 의미합니다. Enum은 관련한 값 모음을 나타냅니다.
enum Color {
Red,
Green,
Blue,
}
let c: Color = Color.Green;
기본적으로 enum의 인덱스는 0부터 시작하지만 인덱스 값을 임의로 설정할 수 있습니다.
// 특정 값만 임의로 변경
enum Color {
Red = 1,
Green,
Blue,
}
let c: Color = Color.Green;
// 모든 값을 임의로 변경
enum Color {
Red = 1,
Green = 2,
Blue = 4,
}
let c: Color = Color.Green;
모든 타입을 Unknown으로 표기할 수 있습니다. 모든 타입을 허용하지만 프로퍼티, 연산을 하는 경우 컴파일러가 체크합니다.
any보다 엄격하게 타입을 좁혀 사용함으로 any보다 unknown을 사용하는 것이 상대적으로 안전합니다.
let notSure: unknown = 4;
notSure = "maybe a string instead";
// OK, definitely a boolean
notSure = false;
Any 역시 모든 타입을 받을 수 있습니다. 불특정한 값을 컴파일 검사를 사지 않고 사용할 때 사용합니다.
기존 JavaScript를 점진적으로 TypeScript로 변경할 때 유용합니다.
Any 타입은 타입 안전성이 떨어지므로 가급적 사용하지 않는 것이 좋습니다.
declare function getValue(key: string): any;
// OK, return value of 'getValue' is not checked
const str: string = getValue("myString");
void는 값을 반환하지 않는 함수의 반환 유형으로 사용합니다.
function warnUser(): void {
console.log("This is my warning message");
}
어떤 값도 반환하지 않는 함수 반환 타입입니다.
// Function returning never must not have a reachable end point
function error(message: string): never {
throw new Error(message);
}
참고자료
https://www.typescriptlang.org/
https://joshua1988.github.io/ts/
https://developer-talk.tistory.com/198
https://sambalim.tistory.com/146전예홍, 「Do it! 타입스크립트 프로그래밍」, 2020