자바스크립트에서 배열은 클래스로 만들어져 있어서 new Array로 선언해야 한다. 다음은 타입스크립트에서의 방식이다.
let numbers: number[] = [1, 2, 3]
자바스크립테어 Array 클래스는 배열을 사용하는데 필요한 여러 가지 메서드를 제공한다. 그 중 Array.isArray는 매개변수로 전달받은 심벌이 배열인지 객체인지 알려준다.
타입스크립트에서 배열의 타입은 아이템타입[]이다. 타입은 객체를 만들고, 그 객체 형식의 Array타입을 선언한다.
type IPerson = {name: string, age?: number}
let personArray: IPerson[] = [{name: 'jack', age: 25}, {name: 'peter'}]
어떤 프로그래밍언어는 문자열을 문자들의 배열로 간주한다. 그러나 타입스크립트에서는 문자 타입이 없고, 문자열의 내용 또한 변경할 수가 없다. 이러한 특징 때문에 문자열을 가공하려면 먼저 문자열을 배열로 전환해야 한다. 보통 문자열을 배열로 전환할 때는 String클래스의 split 메서드를 사용한다. split 메서드는 문자열을 문자로 쪼개는 기준인 구분자를 입력받아 문자열을 string[]배열로 만들어 준다.
export const split = (str: string, delim: string= ''): string[] => str.split(delim)
이렇게 선언해서 모듈화 시켜서 불러쓰면 들어오는 매개변수를 받아서 string 클래스의 메서드인 slpit을 써서 문자로 쪼개준다. string[] 타입의 배열을 다시 string 타입으로 변경하려면 Array 클래스의 join 메서드를 사용해야 한다.
export const join = (strArray: string[], delim: string = ''): string=> strArray.join(delim)
배열이 담고 있는 아이템 중 특정 위치에 있는 아이템을 얻고자 할 때는 인덱스 연산자를 사용한다. 인덱스 연산자는 배열의 특정 위취에 있는 아이템을 얻는다.
const numbers: number[] = [1, 2, 3, 4, 5]
for(let index = 0; index < numbers.length; index++) {
const item: number = numbers[index]
}
객체뿐만 아니라 배열에도 비구조화 할당을 적용할 수 있다. 배열의 비구조화 할당문에서는 객체와 달리 [] 기호를 사용한다.
let array: number[] = [1, 2, 3, 4, 5]
let [first, second, thired, ...rest] = array
console.log(first, second, thired, rest) 1 2 3 [4, 5]