티스토리 뷰
목차
복합형
다른 원시형 또는 복합형을 내부에 포함하여 큰 데이터로 정의하는 데이터 자료형을 타입스크립트 「복합형」이라고 합니다. 배열, 객체 등이 이에 해당합니다. 클래스를 정의하고 만드는 인스턴스도 복합형이며, 리터럴로 정의하는 배열 및 오브젝트들을 소개합니다.
배열
배열은 TypeScript에서 많이 사용되는 리터럴입니다. 스프레드 구문, 분할, 할당 등이 더해져, 다양한 방법을 구사하여 함수형 언어처럼 쓰이기도 합니다. 배열은 다음에 소개하는 개체뿐만 아니라 리터럴로 정의할 수 있는 타입스크립트 복합형 중 하나입니다.
튜플
Java 등은 배열 내부 요소의 자료형이 같습니다. TypeScript는 배열의 요소마다 형태가 다른 "튜플"을 데이터형으로 정의할 수 있습니다. 단, 정의된 형태와 다른 형태의 자료를 삽입할 경우 오류가 발생합니다.
배열에서 데이터 추출
이전 JavaScript는 배열이나 객체의 일부 내용을 변수에 담으려면 하나씩 꺼낼 수밖에 없습니다. 현재 JavaScript와 TypeScript는 분할 할당(=왼쪽에 배열을 쓰는 표기법)을 사용하여 여러 요소를 한꺼번에 꺼낼 수 있습니다. slice()를 사용하지 않고, 새로운 스프레드 구문(...)을 사용하면 됩니다.
스프레드 구문은 생략 기호처럼 마침표 세 개를 씁니다. 스프레드 구문은 꺼내는 것 이외에도 배열이나 객체의 가공, 함수 호출 시 인수 목록에서도 사용할 수 있는 강력한 구문입니다. 여기에서는 두 번째 이후의 모든 요소를 other에 저장합니다.
배열 요소 유무 확인
이전엔 요소의 인덱스 값을 보고 판단했지만, 배열 유무를 boolean으로 반환하는 includes() 메소드가 있으므로 이것을 사용해 보겠습니다.
배열 가공
타입스크립트에서 배열 가공은 다른 언어를 습득했던 사람들이 JavaScript를 배울 때 겪는 어려움 중 하나였습니다.
splice()라는 요소의 제거, 추가를 한 번에 하는 수수께끼의 메소드를 사용하여 퍼즐처럼 배열을 가공했기 때문이죠. 배열 자체를 변경하거나 새로운 배열을 반환하는 등 통일되지 않은 것도 난해함을 늘렸습니다. 스프레드 구문을 사용하면 표준 문법 범위 내에서 이같은 가공이 가능합니다. 좀 전엔 스프레드 구문이 왼쪽에 있었는데, 이번엔 오른쪽에서 배열 내용을 확장합니다.
최근의 JavaScript는 함수형 언어의 기술을 빌려와 버그가 적은 코드를 만들자는 움직임이 있었습니다. 그 중 하나가 배열이나 객체를 가공하는 것이 아니라 값이 변경된 사본을 만들어 마지막에 리플레이스 하는 방법입니다. splice() 대상 배열을 변경합니만, 스프레드 구문을 사용하면 이 정책에 따라 typescript 코딩이 쉬워집니다. 배열의 복사도 쉽게할 수 있습니다.
미완성 강좌 문서입니다 ...