Typescript는 Microsoft에서 개발한 오픈 소스 프로그래밍 언어로, JavaScript의 확장된 버전이다.
JavaScript와 호환되며, 정적 타입을 지원하여 코드의 가독성과 유지 보수성을 높이는 데 도움을 준다.
JavaScript의 모든 기능을 포함하면서도 타입 시스템과 강력한 도구를 제공하여 개발자가 코드를 더 안전하고 효율적으로 작성할 수 있도록 지원한다.
Typescript는 주로 Angular, React, Vue.js 등과 같은 프론트엔드 프레임워크에서 사용된다.
이들 프레임워크는 모두 Typescript를 지원하며, Typescript를 사용하면 코드의 품질을 향상시키고 개발 생산성을 높일 수 있다.
JavaScript: 동적 타입 언어이며, 실행 시간에 타입을 확인한다.
Typescript: 정적 타입 언어이며, 컴파일 시간에 타입을 확인한다.
그래서 코딩을 하고 실행하면 Javascript는 돌아가다가 런타임 에러가 뜨면 오류가 그때 탐지된다.
하지만, Typescript는 컴파일 단계에서 오류를 찾기 때문에, 애초에 오류가 있는 코드는 실행하지 않아 오류추적에 용이하다.
JavaScript: 기본 자료형으로는 문자열, 숫자, 불리언, 객체, 배열 등을 제공한다.
Typescript: JavaScript의 기본 자료형에 추가적으로 enum, tuple, any 등의 자료형을 제공한다.
제네릭이란 C++의 Template같은 자율적인 자료형이 들어가도록 코드를 구현하는 것이다.
// 제네릭 함수 예시
function identity<T>(arg: T): T {
return arg;
}
let output1 = identity<string>("hello"); // output1의 타입은 string
let output2 = identity<number>(123); // output2의 타입은 number
// 제네릭 클래스 예시
class Container<T> {
private value: T;
constructor(value: T) {
this.value = value;
}
getValue(): T {
return this.value;
}
}
let container1 = new Container<string>("hello"); // container1의 타입은 Container<string>
let container2 = new Container<number>(123); // container2의 타입은 Container<number>
JavaScript: 제네릭을 지원하지 않는다.
Typescript: 제네릭을 지원하여 타입 안전성을 높이고 코드의 재사용성을 높인다.
Python에서 Type Decorator을 들어보았나?
타입이 지정되어있지 않아서 메서드에 list.
으로 점을 달면 append, pop 자동완성 힌트를 주지 않는다.
하지만, 타입이 지정되어 있다면, 힌트를 제공한다.
이러한 이유로 IDE와의 결합성은 Typescript가 우수하다.
JavaScript는 간단하고 빠르게 프로토타입을 만들 때 유용하다. 또한 브라우저와 서버 모두에서 사용할 수 있다.
Typescript는 대규모 프로젝트나 팀 프로젝트에서 코드의 가독성과 유지 보수성을 높이고 싶을 때 유용하다.
특히 타입 시스템과 강력한 도구를 사용하여 안정성을 높이고 싶을 때 좋다.
개발 환경과 프로젝트의 규모, 개발자의 선호도 등을 고려하여 적절한 언어를 선택해야 한다.