Ответ 1
Первый (givesAnError
) и последний (isAlsoOK
) являются кортежами, а второй (isOK
) является массивом.
С массивами все ваши элементы одного типа:
let a: string[];
let b: boolean[];
let c: any[];
Но с кортежами вы можете иметь разные типы (и фиксированную длину):
let a: [string, boolean, number];
let b: [any, any, string];
Итак:
a = ["str1", true, 4]; // fine
b = [true, 3, "str"]; // fine
Но:
a = [4, true, 3]; // not fine as the first element is not a string
b = [true, 3]; // not fine because b has only two elements instead of 3
Важно понять, что вывод javascript всегда будет использовать массивы, так как в js нет такой вещи, как кортеж.
Но для времени компиляции это полезно.