w3resource

Union and intersection types in TypeScript

TypeScript Advance Types: Exercise-1 with Solution

Write a TypeScript program that declares a variable 'result' that can hold either a 'string' or a 'number'. Now write a function that takes an argument of type 'string | number | boolean' and logs its type.

Sample Solution:

TypeScript Code:

// Declare a variable 'result' with a broader union type
let result: string | number | boolean;

// Function that logs the type of the argument
function logType(arg: string | number | boolean): void {
  if (typeof arg === "string") {
    console.log("Type: string");
  } else if (typeof arg === "number") {
    console.log("Type: number");
  } else if (typeof arg === "boolean") {
    console.log("Type: boolean");
  } else {
    console.log("Type: unknown");
  }
}

// Testing the function with different argument types
result = "TypeScript ";
logType(result); // Output: Type: string

result = 100;
logType(result); // Output: Type: number

result = true; // Assigning a boolean value
logType(result); // Output: Type: boolean

Explanations:

In the exercise above -

  • First, we declare a variable 'result' with the union type string | number | boolean, which means it can hold values of either 'string' or 'number' or 'boolean' types.
  • Define a function "logType()" that takes an argument 'arg' of type string | number | boolean. Inside the function, we use the 'typeof' operator to check the type of arg and log the corresponding type.
  • Finally, we test the "logType()" function by assigning 'result' different values, such as a string and a number, and then calling the function to log their types.

Output:

"Type: string"
"Type: number"
"Type: boolean"

TypeScript Editor:

See the Pen TypeScript by w3resource (@w3resource) on CodePen.


Previous: TypeScript Advance Types Exercises Home
Next: Using union types in TypeScript functions.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Become a Patron!

Follow us on Facebook and Twitter for latest update.

It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.

https://w3resource.com/typescript-exercises/typescript-advance-types-exercise-1.php