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:

a dev’s guide to Tailwind CSS in 2026

A dev’s guide to Tailwind CSS in 2026

Tailwind CSS is more popular than ever. This guide breaks down v4’s biggest changes, real-world usage, migration paths, and where it fits in the AI future.

Oscar Jite-Orimiono
Jan 23, 2026 ⋅ 12 min read
react animation libraries 2026

Comparing the best React animation libraries for 2026

Evaluate the top React animation libraries for ease of use, developer experience, and bundle size.

Fortune Ikechi
Jan 22, 2026 ⋅ 21 min read

Why your AI agent needs a task queue (and how to build one)

AI agents fan out work across multiple LLM calls and services. Task queues add retries, ordering, and context preservation to keep these workflows reliable.

Muhammed Ali
Jan 22, 2026 ⋅ 7 min read
the replay january 21 2026

The Replay (1/21/26): Booming CSS, Tauri 2.0, and more

Discover what’s new in The Replay, LogRocket’s newsletter for dev and engineering leaders, in the January 21st issue.

Matt MacCormack
Jan 21, 2026 ⋅ 39 sec 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

Would you be interested in joining LogRocket's developer community?

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