TypeScript는 JavaScript의 상위 집합(Superset)으로, 정적 타입을 지원하는 프로그래밍 언어입니다. 주로 JavaScript의 단점을 보완하고, 대규모 프로젝트에서 코드의 안정성과 유지보수성을 높이기 위해 사용됩니다.
1. TypeScript의 특징
✅ 정적 타입(Static Typing)
변수, 함수의 매개변수, 반환값 등에 타입을 명시적으로 지정할 수 있습니다.
컴파일 단계에서 타입 오류를 확인할 수 있어 런타임 오류를 줄일 수 있습니다.
let message: string = "Hello, TypeScript!";
message = 123; // ❌ 오류 발생 (string 타입에 숫자를 할당할 수 없음)
✅ 인터페이스(Interface)
객체의 구조를 정의하는 역할을 합니다.
클래스에서 인터페이스를 구현할 수 있습니다.
interface User {
name: string;
age: number;
}
const user: User = { name: "John", age: 30 }; // ✅ 올바른 객체
const invalidUser: User = { name: "Jane" }; // ❌ age 속성이 빠져서 오류 발생
✅ 클래스(Class) 및 접근 제어자
public, private, protected 키워드를 사용하여 접근을 제한할 수 있습니다.
class Person {
private name: string;
constructor(name: string) {
this.name = name;
}
getName(): string {
return this.name;
}
}
const person = new Person("Alice");
console.log(person.getName()); // ✅ 정상 출력
console.log(person.name); // ❌ private 속성 접근 불가
✅ 제네릭(Generics)
다양한 타입을 지원하는 함수나 클래스를 만들 때 사용합니다.
function identity<T>(arg: T): T {
return arg;
}
console.log(identity<string>("Hello")); // "Hello"
console.log(identity<number>(123)); // 123
✅ 타입 추론(Type Inference)
타입을 명시적으로 지정하지 않아도, TypeScript가 자동으로 타입을 추론합니다.
let num = 10; // TypeScript가 num을 number로 추론
num = "hello"; // ❌ 오류 발생
---
2. TypeScript 주요 문법
2.1 변수와 타입
let isDone: boolean = false;
let count: number = 10;
let userName: string = "Alice";
let arr: number[] = [1, 2, 3]; // 배열
let tuple: [string, number] = ["hello", 10]; // 튜플
let anything: any = "Can be anything"; // 모든 타입 허용
2.2 함수
function add(x: number, y: number): number {
return x + y;
}
2.3 유니온 타입(Union Type)
let value: string | number;
value = "Hello"; // ✅ 가능
value = 123; // ✅ 가능
value = true; // ❌ 오류 발생
2.4 타입 별칭(Type Alias)
type ID = string | number;
let userId: ID = "abc123";
2.5 타입 가드(Type Guards)
function isString(value: any): value is string {
return typeof value === "string";
}
2.6 타입 단언(Type Assertion)
let someValue: any = "This is a string";
let strLength: number = (someValue as string).length;
---
3. TypeScript 환경 설정
3.1 TypeScript 설치
npm install -g typescript
3.2 tsconfig.json 생성
tsc --init
3.3 TypeScript 코드 실행
tsc index.ts # TypeScript 파일을 JavaScript로 컴파일
node index.js # 실행
---
TypeScript는 코드의 가독성을 높이고, 유지보수성을 강화하는 강력한 도구입니다. JavaScript를 안전하게 확장할 수 있는 기능을 제공하므로, 규모가 큰 프로젝트에서 특히 유용합니다.
'프로그래밍 > javascript' 카테고리의 다른 글
postman Pre-request script (0) | 2022.10.24 |
---|---|
Vue.js 환경설정 (0) | 2021.12.09 |
node.js를 이용한 서버 만들기 (0) | 2021.10.08 |
타임리프 (Thymeleaf) 정리 (2) (0) | 2021.10.07 |
타임리프 (Thymeleaf) 정리 (1) (0) | 2021.10.06 |