Tutorial

Union Types in TypeScript

TypeScript

While this tutorial has content that we believe is of great benefit to our community, we have not yet tested or edited it to ensure you have an error-free learning experience. It's on our list, and we're working on it! You can help us out by using the "report an issue" button at the bottom of the tutorial.

In TypeScript you can use union types to describe values that can be of more than one type. It therefore allows to avoid using any. Define union types with the | character to separate the different possible types.

For example, let’s say a function definition uses parameters that describe values that can be either strings or numbers. Instead of this:

function add(v1: any, v2: any) {
  let value1 = typeof v1 === "string" ? +v1 : v1;
  let value2 = typeof v2 === "string" ? +v2 : v2;

  console.log(value1 + value2);
}

add(23, "32"); // 55
add(23, true); // No error when passing non-string or number value

You can do this:

function add(v1: number | string, v2: number | string) {
  let value1 = typeof v1 === "string" ? +v1 : v1;
  let value2 = typeof v2 === "string" ? +v2 : v2;

  console.log(value1 + value2);
}

add(23, "32"); // 55
add(23, true); // Error when passing non-string or number value
Creative Commons License