# TypeScript – Check if a number is odd

## TypeScript Advance Types: Exercise-5 with Solution

Write a TypeScript function that accepts a parameter of type number and returns a boolean indicating whether the number is odd. Use a type guard to check and ensure the input is a valid number.

Sample Solution:

TypeScript Code:

``````// Function 'isOdd' that checks if a number is odd
function isOdd(num: number): boolean {
// Type guard to check if 'num' is a finite number
if (typeof num === "number" && isFinite(num)) {
return num % 2 !== 0; // Check if the remainder is not zero (indicating an odd number)
} else {
return false; // Return false for non-numeric or infinite values
}
}

// Test the 'isOdd' function
console.log("Is 7 is odd?",isOdd(7));
console.log("Is 20 is odd?",isOdd(20));
console.log("Is -5 is odd?",isOdd(-5));
console.log("Is ABC is odd?",isOdd("ABC"));
```
```

Explanations:

In the exercise above -

• First, we define a function "isOdd()" that takes a parameter 'num' of type number.
• Inside the function, we use a type guard (typeof num === "number" && isFinite(num)) to check if num is both of type number and a finite number (not NaN, Infinity, or -Infinity).
• If the type guard passes, we use the expression num % 2 !== 0 to check if num is an odd number (i.e., its remainder when divided by 2 is not zero).
• If 'num' is not a valid number (fails the type guard) or is even, the function returns false.
• Finally, we test the "isOdd()" function with different numeric and non-numeric values to demonstrate how it handles different cases.

Output:

```"Is 7 is odd?"
true
"Is 20 is odd?"
false
"Is -5 is odd?"
true
"Is ABC is odd?"
false
```

TypeScript Editor:

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

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.

﻿