Syntax
let arr: Type[];
let tuple: [Type1, Type2];Examples
Typed Arrays
Restricting an array to hold only elements of a specific type.
let numbers: number[] = [1, 2, 3];
let names: Array<string> = ["Alice", "Bob"]; // equivalent generic syntax
// numbers.push("four"); // Error - "four" is not a number
let mixed: (string | number)[] = ["id", 101, "name", "Alice"]; // union arrayTuples for Fixed-Shape Data
A fixed-length array where each position has its own specific type.
let point: [number, number] = [10, 20];
let nameAge: [string, number] = ["Alice", 25];
// nameAge = [25, "Alice"]; // Error - types are in the wrong positions
// A common pattern: React-style useState-esque tuple return
function useToggle(): [boolean, () => void] {
let state = false;
const toggle = () => { state = !state; };
return [state, toggle];
}Best practices
- Use Type[] for collections where every element serves the same purpose and the length is not fixed
- Use tuples when a fixed number of values with distinct meanings need to travel together, like a coordinate pair or a [value, setter] pair
- Add readonly before a tuple or array type (readonly [number, number]) when its contents should never be mutated after creation
- Prefer a named object over a tuple with more than 2-3 elements - positional meaning becomes hard to remember beyond that
Runtime & versions
Compiled to JavaScript. Feature availability depends on the language and runtime version used by your project; consult the official reference below.
TypeScript Handbook