DEV Community

Sachit
Sachit

Posted on • Edited on

3 2

Typescript: unknown vs any

Do you know the difference between unknown and any in typescript ? Do you know when is it useful to use unknown or any ? Do you know why using any is not recommended ? Well, here's a explanation of the differences and uses.

The type any was added to typescript to allow easy migration of the code for any javascript project. any and unknown are mostly the same with a key difference:

unknown does not allow access to any property on an object or variable or use any primitive methods. This is useful when you either don't know the shape of data you are dealing with or are migrating from legacy javascript code.

For example:

const a: any = '123';
a.toFixed(2);
Enter fullscreen mode Exit fullscreen mode

Doing this will result in a runtime error:

Image description

Now lets change the any to unknown and see what happens

const a: unknown = '123';
a.toFixed(2);
Enter fullscreen mode Exit fullscreen mode

Doing this with an unknown type will raise a compiler error.

Image description

To fix the above, we have to narrow the type (using truthiness narrowing) to a number using a type guard like:

const a: unknown = 123;
if (typeof a === 'number') {
  console.log(a.toFixed(2)
}
Enter fullscreen mode Exit fullscreen mode

In short, benefits of using unknown are:

  • Leads us to use type narrowing ( article on this coming soon )
  • Refactoring legacy javascript code to typescript
  • Catch bugs early in the development cycle
  • Preventing runtime bugs in applications

See a short video that explains this in details.

Hope you find this useful.

We will discuss type narrowing, type assertion and type guards in the next few posts.

Until them, stay safe, stay healthy.

Heroku

Simplify your DevOps and maximize your time.

Since 2007, Heroku has been the go-to platform for developers as it monitors uptime, performance, and infrastructure concerns, allowing you to focus on writing code.

Learn More

Top comments (0)

Heroku

Build apps, not infrastructure.

Dealing with servers, hardware, and infrastructure can take up your valuable time. Discover the benefits of Heroku, the PaaS of choice for developers since 2007.

Visit Site

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay