URL: https://www.progressiverobot.com/typescript-union-types/

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(&lt;^&gt;v1: any, v2: any&lt;^&gt;) {

  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(&lt;^&gt;v1: number | string, v2: number | string&lt;^&gt;) {

  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