본문 바로가기

개발 언어/Typescript

(4)
타입스크립트에서 클래스와 인터페이스 체스 엔진을 만드는 예를 들어보겠습니다. 먼저 가장 기본적인 타입부터 정의하여야 합니다. class Game {} // 체스 게임 class Piece {} // 체스 말 class Position {} // 체스 말의 좌표 집합 체스에는 여섯 가지의 말이 있습니다. class King extends Piece {} class Queen extends Piece {} class Bishop extends Piece {} class Knight extends Piece {} class Rook extends Piece {} class Pawn extends Piece {} 체스 말에는 색깔로 상대를 구분하고 체스판의 좌표는 x축이 왼쪽에서 오른쪽으로 A부터 H까지이고, y축이 아래에서 위로 1부터 8까지입..
타입스크립트에서 함수란 자바스크립트 (이하 JS)에서 함수는 일급 객체입니다. 함수를 변수에 할당 함수를 다른 함수로 전달 함수에서 함수를 반환 함수를 객체와 프로토타입에 할당 함수에 프로퍼티를 기록 함수에 기록된 프로퍼티 읽기 따라서, 위와 같은 작업을 할 수 있습니다. 타입스크립트 (이하 TS)는 이 모든 것을 타입 시스템에 녹여냈습니다. function add (a: number, b: number) { return a + b; } 보통 함수 매개변수의 타입은 명시적으로 정의합니다. TS는 항상 함수의 본문에서 사용된 타입들을 추론하지만 특별한 상황이 아니라면 매개변수 타입은 추론하지 않습니다. 반환 타입은 자동으로 추론하지만 원하면 명시할 수 있습니다. 실무에서는 TS가 반환 타입을 추론하도록 하는 게 일반적이라고 합니..
타입스크립트에서 타입의 모든 것 타입이란 값과 이 값으로 할 수 있는 일의 집합입니다. Boolean 타입은 모든 bool (참과 거짓 중 하나)과 bool에 수행할 수 있는 모든 연산 (||, &&, ! 등)의 집합입니다. number 타입은 모든 숫자와 숫자에 적용할 수 있는 모든 연산 (+, -, *, /, %, ||, &&, ? 등)의 집합입니다. string 타입은 모든 문자열과 문자열에 수행할 수 있는 모든 연산 (+, ||, && 등)과 문자열에 호출할 수 있는 모든 메서드 (.concat, .toUpperCase 등)의 집합입니다. 어떤 값이 T 타입이라면, 이 값을 가지고 어떤 일을 할 수 있고 어떤 일을 할 수 없는지도 알 수 있습니다. 여기서 중요한 것은 타입 검사기를 이용해 유효하지 않은 동작이 실행되는 일을 예방..
타입스크립트란 타입스크립트 (이하 TS)는 자바스크립트 (이하 JS)의 불완전성을 보완해주는 언어입니다. TS는 흔히 발생하는 실수를 방지하며, 문서화를 제공하고, 리팩터링을 쉽게 만들며, 단위 테스트의 숫자를 반으로 줄임으로 더 안전한 프로그램을 구현할 수 있게 보장해줍니다. 여기서, '안전한'이란 타입의 안정성을 뜻합니다. 타입 안정성은 타입을 이용해 프로그램이 유효하지 않은 작업을 수행하지 않도록 방지합니다. 숫자와 리스트의 연산 객체에 존재하지 않는 멤버 함수 호출 다른 곳으로 이동된 모듈을 임포트하기 위의 사례들이 그 예입니다. JS는 이런 실수가 있는 코드라도 최대한 실행하려 시도합니다. 유효하지 않은 작업이라도 개발자가 실제로 의도한 것이 있을 거라고 짐작하기 때문입니다. 3 + []; // "3" let..