Select Page
TypeScript - Double Exclamation Mark Explained

In this post, we’re diving into a lesser-known but powerful concept in TypeScript: the double exclamation mark. This often-used symbol carries significance when it comes to type coercion and boolean transformations.

Introduction to Double Exclamation Mark

The double exclamation mark, !!, isn’t an operator itself, but rather a shorthand trick commonly used in TypeScript and JavaScript. It’s primarily used for explicit boolean conversion.

Let’s take a look at how the double exclamation mark works with an example.

const stringValue: string = “Hello”;
const booleanValue: boolean = !!stringValue;

console.log(booleanValue); // Output: true

Here, we have a string stringValue assigned with the value ‘Hello’. By using !!, we’re converting this string into its boolean representation.

How Double Negation Works

The first ! operator negates the truthiness of the value. Then, the second ! negates this negation, effectively transforming the value into a boolean.

The double exclamation mark comes in handy when working with conditional checks, especially when you need a boolean value explicitly. It’s often used in compact boolean evaluations.

While !! is a concise way to perform boolean conversion, in some scenarios, using the Boolean() function or explicit comparisons might enhance code readability.


To sum up, the double exclamation mark in TypeScript provides a quick and direct way to convert values to their boolean representations. Remember, while it’s handy, clarity and readability should remain priorities in your code.