Microsoft에서 개발한 오픈 소스 프로그래밍 언어입니다. JavaScript의 상위 확장(슈퍼셋)으로, 정적 타입 지정(static typing)을 지원하여 코드의 예측 가능성과 안정성을 높이는 도구입니다. 타입스크립트는 JavaScript의 모든 기능을 포함하며, 추가적으로 타입 주석을 통해 변수, 매개변수, 함수 등의 타입을 명시할 수 있습니다.
변수나 함수의 타입을 명시함으로써 코드의 오류를 사전에 발견할 수 있습니다. 이는 개발 시점에서 런타임 에러를 줄이고 안정성을 높이는 데 도움을 줍니다.
최신 ECMAScript 표준을 따르며, JavaScript와의 호환성을 보장합니다.
코드 완성, 리팩토링, 정적 분석 등의 다양한 도구 지원을 통해 개발 생산성을 높입니다.
객체지향 프로그래밍을 지원하는 클래스와 인터페이스 등을 제공하여 구조화된 코드를 작성할 수 있습니다.
null 및 undefined를 처리하기 위한 기능과 선택적 매개변수를 제공하여 코드의 유연성을 높입니다.
오픈 소스로 개발되어 있어 커뮤니티 기여를 받고 있으며, 다양한 라이브러리와 프레임워크와의 호환성이 뛰어납니다.
대규모 프로젝트에서 코드의 복잡성을 관리하고 유지보수성을 높이기 위해 많이 사용됩니다.
Angular, React, Vue.js 등의 프론트엔드 프레임워크와 함께 사용되어 컴포넌트 기반의 UI 개발을 지원합니다.
서버 사이드 개발에서도 Node.js와 함께 사용되어 타입 안전성을 유지하고 개발 생산성을 높이는 데 도움을 줍니다.
let isDone: boolean = false;
Number: number
let decimal: number = 6;
let hex: number = 0xf00d;
let binary: number = 0b1010;
let octal: number = 0o744;
let color: string = "blue";
let fullName: string = `Bob Bobbington`;
let list1: number[] = [1, 2, 3];
let list2: Array<string> = ["a", "b", "c"];
let x: [string, number];
x = ["hello", 10]; // OK
enum Color {
Red,
Green,
Blue,
}
let c: Color = Color.Green;
let notSure: any = 4;
notSure = "maybe a string instead";
function warnUser(): void {
console.log("This is a warning message");
}
let u: undefined = undefined;
let n: null = null;
function error(message: string): never {
throw new Error(message);
}
let obj: object = {};
interface Person {
name: string;
age: number;
}
let person: Person = {
name: "John",
age: 30,
};
type ID = string | number;
let userId: ID = 12345;
type MyBool = true | false;
let isActive: MyBool = true;
interface Animal {
name: string;
}
interface Flyable {
fly(): void;
}
type Bird = Animal & Flyable;
let tuple: [string, number] = ["hello", 10];
function isNumber(x: any): x is number {
return typeof x === "number";
}
type TypeName<T> =
T extends string ? "string" :
T extends number ? "number" :
T extends boolean ? "boolean" :
"object";
type Readonly<T> = {
readonly [P in keyof T]: T[P];
};
interface Box<T> {
value: T;
}
let box: Box<number> = { value: 10 };
type Easing = "ease-in" | "ease-out" | "ease-in-out";
type Partial<T> = {
[P in keyof T]?: T[P];
};
타입스크립트는 JavaScript 생태계의 발전과 함께 많은 개발자들 사이에서 선호되는 언어로 자리 잡고 있으며, 코드의 안정성과 예측 가능성을 높이는 데 기여하고 있습니다.
출처 : https://www.typescriptlang.org/docs/handbook/typescript-in-5-minutes.html