2024-07-23
2415
#typescript
Paul Cowan
2066
Jul 23, 2024 ⋅ 8 min read

A complete guide to const assertions in TypeScript

Paul Cowan Contract software developer.

Recent posts:

the replay december 17

The Replay (12/17/25): React2Shell, Shopify Winter ‘26, and more

Discover what’s new in The Replay, LogRocket’s newsletter for dev and engineering leaders, in the December 17th issue.

Matt MacCormack
Dec 17, 2025 ⋅ 34 sec read
react 2 shell vulnerability shruti kapoor

React2Shell exploit: What happened and lessons learned

Shruti Kapoor breaks down the React2Shell exploit and discusses lessons that dev teams can take away from one of the biggest security events of the year.

Shruti Kapoor
Dec 17, 2025 ⋅ 6 min read
Angular Vs. React Vs. Vue.js: Comparing Performance

Angular vs. React vs. Vue.js: A performance guide for 2026

React, Angular, and Vue still lead frontend development, but 2025 performance is shaped by signals, compilers, and hydration. Here’s how they compare.

Nefe Emadamerho-Atori
Dec 16, 2025 ⋅ 19 min read

Drizzle and React Native (Expo): Local SQLite setup

Learn how to use Drizzle ORM with Expo SQLite in a React Native app, including schema setup, migrations, and type-safe queries powered by TanStack Query.

Nitish Sharma
Dec 16, 2025 ⋅ 6 min read
View all posts

5 Replies to "A complete guide to <code>const</code> assertions in TypeScript"

  1. The example in your conclusion is wrong: z and a would not be read-only since those are the keys for nested object. This is currently the behavior of “as const” syntax.

  2. that isn’t true, this is the resultant type:

    “`
    let obj: {
    readonly x: 10;
    readonly y: readonly [20, 30];
    readonly z: {
    readonly a: {
    readonly b: 42;
    };
    };
    }
    “`
    and this error happens when you try to modify z o a
    “`
    Cannot assign to ‘z’ because it is a read-only property.(2540)
    “`

  3. The example with redux actions is striking. With interfaces it’s clear and reads nicely, with ‘const’ assertion, it becomes more…implicit and easier to overlook. IMO interfaces are better for this purpose. The goal is not to write maintainable code, not as little code as possible.
    But the purpose of the assertion is clear when it comes to literals.
    Nice article, thanks!

Leave a Reply

Hey there, want to help make our blog better?

Join LogRocket’s Content Advisory Board. You’ll help inform the type of content we create and get access to exclusive meetups, social accreditation, and swag.

Sign up now