[0726] Typescript
TypeScript는 Microsoft에서 개발하고 유지 관리하는 오픈 소스 프로그래밍 언어입니다. 이는 JavaScript의 상위 집합(superset)으로써, 기존의 JavaScript에 정적 타입 기능을 추가하였습니다.
이렇게 타입을 지정해줌으로써 프로그래머가 실수로 잘못된 타입의 데이터를 사용하는 등의 오류를 줄일 수 있으며, 코드의 가독성과 유지보수성을 향상시킵니다. 또한 TypeScript는 클래스와 인터페이스 등의 객체 지향 프로그래밍 구조를 사용하여 대규모 프로젝트를 더 효율적으로 관리할 수 있게 합니다.
TypeScript는 웹 브라우저에서 직접 실행되지 않습니다. 대신 TypeScript 코드는 JavaScript 코드로 "트랜스파일"(transpile, 변환 및 컴파일)되어 실행됩니다. 이렇게 함으로써 개발자는 TypeScript의 기능을 활용하면서도 그 결과물이 모든 JavaScript 환경에서 호환되도록 할 수 있습니다.
마지막으로, TypeScript는 자동 완성, 타입 검사, 리팩토링 도구 등과 같은 개발 도구를 향상시키는 데 도움이 됩니다. 이로 인해 개발자들은 더욱 생산적으로 코드를 작성하고 디버깅할 수 있습니다.
function greet(person: string, date: Date) {
console.log(`Hello ${person}, today is ${date.toDateString()}!`);
}
greet("John", new Date());
위의 예제에서 greet 함수는 두 개의 매개변수를 가지며, 첫 번째 매개변수 person은 문자열 타입(string), 두 번째 매개변수 date는 Date 객체를 받습니다.
이렇게 매개변수에 타입을 명시함으로써 TypeScript는 개발자가 의도한 타입의 인자가 전달되었는지 검사할 수 있습니다. 만약 다음과 같이 잘못된 타입의 인자를 전달하면, TypeScript는 컴파일 시점에 오류를 반환할 것입니다.
greet("John", "July 26, 2023");
// TypeError: Argument of type 'string' is not assignable to parameter of type 'Date'
이 경우, date 매개변수에는 Date 객체가 필요하지만 문자열(string)을 전달했기 때문에 오류가 발생하였습니다. 이러한 타입 검사를 통해 코드의 안정성을 향상시키고 버그를 사전에 방지할 수 있습니다.
또한, TypeScript는 자동 완성과 같은 기능을 제공하여 개발자의 생산성을 높일 수 있습니다.
예를 들어, date.toDateString()를 호출하는 경우, TypeScript는 toDateString() 메서드가 Date 객체에서 사용 가능하다는 것을 알고, 이를 개발자에게 제안합니다.
이러한 방식으로, TypeScript는 개발자가 더 안전하고 효율적으로 코드를 작성하도록 돕습니다.