let ourTuple: [string, number, string, boolean] = ['Is', 7 , 'our favorite number?' , false];
In TypeScript, when an array is typed with elements of specific types, it’s called a tuple. The tuple above (
ourTuple) contains the elements:
'our favorite number?' ,
false and the tuple has a type of
[string, number, string, boolean]. Tuple types specify both the lengths and the orders of compatible tuples, and will cause an error if either of these conditions are not met:
let numbersTuple: [number, number, number] = [1,2,3,4]; // Type Error! numbersTuple should only have three elements. let mixedTuple: [number, string, boolean] = ['hi', 3, true] // Type Error! The first elements should be a number, the second a string, and the third a boolean.
.length properties. We can access (or change) the elements of both using
[index]. But despite their similarities, tuples and arrays do not have compatible types within TypeScript. Specifically, we can’t assign an array to a tuple variable, even when the elements are of the correct type:
let tup: [string, string] = ['hi', 'bye']; let arr: string = ['there','there']; tup = ['there', 'there']; // No Errors. tup = arr; // Type Error! An array cannot be assigned to a tuple.
Now let’s practice using tuples and tuple types!
The code editor has defined the variable
favoriteCoordinates with the precise location of the Codecademy headquarters. The location is expressed as a tuple encoding the coordinates 40 degrees 43.2 minutes north latitude, 73 degrees 59.8 minutes west longitude.
Please provide the correct type annotation for this tuple.
Actually, our favorite place is not the Codecademy headquarters (wonderful though it may be). Reassign the variable
favoriteCoordinates to a tuple that expresses the objectively best coordinates, the center of the Marianas trench at 17 degrees 45 minutes north, 142 degrees 30 minutes east.
Sadly, the tuple
favoriteCoordinates still doesn’t describe the best part of the marianas trench: the bottom. Try to fix this by adding the deepest depth to the end of the tuple: Add the code
favoriteCoordinates = -6.825; and then run
That’s 6.825 miles deep!
OK luckily that didn’t work. The whole point of tuples is that they have fixed lengths, so you cannot access elements of
favoriteCoordinates with indices greater than 5. Even when you want to!
Click the “Run” button to move on to the next exercise.