TypeScript는 Microsoft에서 개발한 오픈 소스 프로그래밍 언어로, JavaScript의 단점을 보완하기 위해 생겨났다. TypeScript는 정적 타이핑 및 기타 기능을 언어에 추가하여 JavaScript에 비해 테스트 코드보다 비지니스 로직 작성에 집중할 수 있게 해준다.
TypeScript에는 정적 타이핑이 도입되어 변수의 유형, 함수 매개변수 및 반환 유형을 선언할 수 있다. 이는 런타임(실행 시간)이 아닌 컴파일 시간에 변수의 타입을 체크하여 관련 오류를 잡는 데 도움이 된다.
TypeScript의 인터페이스는 객체의 특정 모양을 적용하고 더 나은 코드 구성을 돕는 데 사용할 수 있다.
interface Person {
name: string;
age: number;
}
function greet(person: Person): string {
return `Hello, ${person.name}!`;
}
튜플은 각 요소가 특정 유형을 가질 수 있는 정렬된 배열과 같은 구조로, 쉽게 말해서 서로 다른 타입의 원소를 순서에 맞게 가질 수 있는 특수한 형태의 배열이다. 일반 배열과 달리 튜플의 요소 유형은 동일할 필요가 없다.
let myTuple: [string, number, boolean];
myTuple = ["Hello", 42, true];
위의 예에서 myTuple은 인덱스 0에 string, 인덱스 1에 number, 인덱스 2에 boolean이 있어야 하는 튜플로 선언된다.
enum은 열거형 데이터 타입이라고도 하며, 다양한 상수를 보다 더 이해하기 쉬운 문자열 이름으로 접근하고 사용할 수 있게 하는 타입이다. 쉽게 말하면 숫자 값에 의미 있는 이름을 지정하여 유지, 관리가 쉽게 한다.
number
혹은 string
타입의 값만을 할당할 수 있다.enum Direction {
Up,
Down,
Left,
Right
}
let myDirection: Direction = Direction.Up;
console.log(myDirection); // 0
enum HttpStatus {
OK = 200,
NotFound = 404,
ServerError = 500
}
let status: HttpStatus = HttpStatus.NotFound;
console.log(status); // 404
TypeScript 강의가 시작되었다. JavaScript와는 또 다른 사용법에 헷갈린다. 새로운 개념이 많아서 익숙해지는데 시간이 좀 걸릴 것 같다. 개인 과제도 해야하지만, 우선 강의부터 먼저 다 듣기로 했다. 어쨌든 JavaScript의 단점을 보완하며 생겨난 개념이라고 하니, 익숙해지면 좀 더 편해지겠지?