타입스크립트에서 배열 타입을 다룰 때는 타입 뒤에 [] 를 붙여주면 됩니다.
let stringArr: string[] = ["Hello","World"];
let mixedArr: (string | number)[] = ["1",2,3];
readonly
키워드를 사용하면 배열의 변경을 방지할 수 있습니다.
const readonlyArr: readonly string[] = ["a", "b", "c"];
let person: { name: string; age:number } = {
name: "MinJae",
age: 27
};
let optionalPerson: { name: string; age?: number } = {
name: "MJ"
};
타입을 재사용하기 위해 type
이나 interface
를 사용하면 유지보수가 편리해집니다.
type Person = { name: string; age?: number };
let person: Person = { name: "MJ", age: 27 };
function add(x: number, y:number): number {
return x + y;
}
![](https://velog.velcdn.com/images/min_jae/post/3d340cc9-ac2b-4777-8155-23671761e3c0/image.png)
const subtract: (a: number, b: number) => number = (a, b) => a - b;
function logMessage(message: string, timestamp?: Date): void {
console.log(`[${timestamp?.toISOString() || "no timestamp"}] ${message}`);
}
let id: string | number;
id = 'abcd';
id = 1234;
interface는 타입스크립트에서 객체나 클래스를 위한 타입을 정할 때 사용합니다.
interface User {
id: number;
name: string;
email?: string; // 선택적 속성
}
// 객체 사용
let user: User = {
id: 1,
name: "Alice",
};
// 인터페이스 확장
interface Admin extends User {
adminLevel: number;
}
let admin: Admin = {
id: 2,
name: "Bob",
adminLevel: 1,
};
let tuple: [string, number, boolean];
tuple = ["hello", 42, true];
// 튜플의 구조 분해
let [greeting, number, isActive] = tuple;
// 숫자 열거형
enum Direction {
Up = 1,
Down,
Left,
Right,
}
let move: Direction = Direction.Up;
// 문자열 열거형
enum Status {
Success = "SUCCESS",
Failure = "FAILURE",
}
let result: Status = Status.Success;