러닝 타입스크립트를 읽고 요약한 내용입니다.
const warriors = ["Artemisia", "Boudica"];
warriors.push("Zenobia");
warriors.push(true);
// Argument of type 'boolean' is not assignable to parameter of type 'string'.
// 타입은 string 배열을 반환하는 함수
let createStrings: () => string[];
// 타입은 각각의 string을 반환하는 함수 배열
let stringCreators: (() => string)[];
// 타입은 string 또는 number의 배열
let stringOrArrayOfNumbers: string | number[];
// 타입은 각각 number 또는 string인 요소의 배열
let arrayOfStringOrNumbers: (string | number)[];
// 타입: any[]
let values = [];
// 타입: string[]
values.push('');
// 타입: (number | string)[]
values[0] = 0;
[]
(대괄호)를 갖습니다.let arrayOfArraysOfNumbers: number[][];
arrayOfArraysOfNumbers = [
[1, 2, 3],
[2, 4, 6],
[3, 6, 9]
]
const defenders = ["Clarenza", "Dina"];
// 타입: string
const defender = defenders[0];
const soldiersOrDates = ["Deborah Sampson", new Date(1782, 6, 3)];
// 타입: string | Date
const soldierOrDate = soldiersOrDates[0];
function withElements(elements: string[]) {
console.log(elements[9001].length); // 타입 오류 없음
}
withElements(["It's", "over"]);
noUncheckedIndexedAccess
플래그가 있지만 매우 엄격해서 주로 사용되진 않습니다.// 타입: string[]
const soldiers = ["Harriet Tubman", "Joan of Arc", "Khutulun"];
// 타입: number[]
const soldierAges = [90, 19, 45];
// 타입: (string | number)[]
const conjoined = [...soldiers, ...soldierAges];
function logWarries(greeting: string, ...names: string[]) {
for(const name of names) {
console.log(`${greeting}, ${name}!`);
}
}
const warriors = ["Cathay Williams", "Lozen", "Nzinga"];
logWarries("Hello", ...warriors);
const birthYears = [1822, 1923, 2001];
logWarries("Born in", ...birthYears);
// Argument of type 'number' is not assignable to parameter of type 'string'.