Consider the following Typescript example. The first line results in an error 'type undefined is not assignable to type [string]'. The last two lines do compile.
let givesAnError: [string] = ;
let isOK: string = ;
let isAlsoOK: [string] = ["foo"];
The first (
givesAnError) and last (
isAlsoOK) are tuples, and the second (
isOK) is an array.
With arrays all of your elements are of the same type:
let a: string; let b: boolean; let c: any;
But with tuples you can have different types (and a fixed length):
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
But for the compilation time it is useful.