자바스크립트는 C나 Java와 같은 C-Family 언어와는 구별되는 특성이 몇 가지 있다.
. Prototype-based Object Oriented Language
. Scope와 this
. 동적 타입 언어 (느슨한 타입 언어)
TypeScript는 자바스크립트 대체 언어 중 하나로써 자바스크립트(ES5)의 상위확장(Superset)이다.
. Microsoft에서 2012년 발표한 오픈소스
. 정적 타이핑을 지원하며 ES6의 클래스, 모듈 등과 ES7의 Decorator 등을 지원한다.
. ES5의 Superset이므로 기존의 JS 문법을 그대로 사용할 수 있다.
function add(left: number, right: number): number { return left + right; }
declare namespace arithmetics { add(left: number, right: number): number; subtract(left: number, right: number): number; multiply(left: number, right: number): number; divide(left: number, right: number): number; }
class Person {
private name : string;
private age: number;
private salary: number;
constructor(name: string, age: number, salary: number) {
this.name = name;
this.age = age;
this.salary = salary;
}
toString(): string {
return `${this.name} (${this.age}) (${this.salary})`;
}
}