<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/is-kit-v1-15-0-exhaustive-discriminated-union-guards-fdqyhsah8" -->

---
title: is-kit v1.15.0: Exhaustive Discriminated Union Guards
description: is-kit v1.15.0 adds a discriminatedUnion feature that generates a runtime type guard for finite discriminated unions while validating branch coverage at...
canonical: https://daily.dev/posts/is-kit-v1-15-0-exhaustive-discriminated-union-guards-fdqyhsah8
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: is-kit v1.15.0: Exhaustive Discriminated Union Guards | daily.dev
og:description: is-kit v1.15.0 adds a discriminatedUnion feature that generates a runtime type guard for finite discriminated unions while validating branch coverage at...
og:url: https://daily.dev/posts/is-kit-v1-15-0-exhaustive-discriminated-union-guards-fdqyhsah8
og:image: https://api.daily.dev/og/posts/fdQYhsAH8.png
og:image:alt: is-kit v1.15.0: Exhaustive Discriminated Union Guards
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# is-kit v1.15.0: Exhaustive Discriminated Union Guards

**[Open Source](https://daily.dev/sources/opensourcesquad)** · [@nyaomaru](https://daily.dev/nyaomaru) · 1 min read · 0 upvotes · 0 comments

## Summary

is-kit v1.15.0 adds a discriminatedUnion feature that generates a runtime type guard for finite discriminated unions while validating branch coverage at compile time. Missing, extra, or mismatched branches now surface as TypeScript errors rather than causing silent runtime bugs. The feature originated from a community discussion about exhaustiveness checking in hand-written type guards that became a GitHub issue.

## Content

is-kit v1.15.0 introduces `discriminatedUnion`.

It creates a runtime type guard for a finite discriminated union while checking the branch coverage at compile time.

Missing, extra, or mismatched branches become TypeScript errors instead of silent runtime drift.

The feature came from a discussion about exhaustiveness in hand-written type guards, which turned into a GitHub issue and then this release.

[https://github.com/nyaomaru/is-kit/releases/tag/v1.15.0](https://github.com/nyaomaru/is-kit/releases/tag/v1.15.0)

#TypeScript #OpenSource #is-kit

## Similar posts on daily.dev

- [Omit for Discriminated Unions in TypeScript](https://daily.dev/posts/omit-for-discriminated-unions-in-typescript-ujl0mde1h) · TkDodo · 7 upvotes · 0 comments

---

Tags: [#open-source](https://daily.dev/tags/open-source), [#typescript](https://daily.dev/tags/typescript)

[View this post on daily.dev](https://daily.dev/posts/is-kit-v1-15-0-exhaustive-discriminated-union-guards-fdqyhsah8)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"DiscussionForumPosting","mainEntityOfPage":"https://daily.dev/posts/is-kit-v1-15-0-exhaustive-discriminated-union-guards-fdqyhsah8","headline":"is-kit v1.15.0: Exhaustive Discriminated Union Guards","text":"is-kit v1.15.0 adds a discriminatedUnion feature that generates a runtime type guard for finite discriminated unions while validating branch coverage at compile time. Missing, extra, or mismatched branches now surface as TypeScript errors rather than causing silent runtime bugs. The feature originated from a community discussion about exhaustiveness checking in hand-written type guards that became a GitHub issue.","url":"https://daily.dev/posts/is-kit-v1-15-0-exhaustive-discriminated-union-guards-fdqyhsah8","datePublished":"2026-09-28T21:16:27.950Z","dateModified":"2026-09-28T21:16:43.702Z","author":{"@type":"Person","name":"nyaomaru","url":"https://daily.dev/nyaomaru","image":"https://avatars.githubusercontent.com/u/90489696?v=4","interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"EndorseAction"},"userInteractionCount":280}},"interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"isPartOf":{"@type":"WebPage","url":"https://daily.dev/squads/opensourcesquad","name":"Open Source"}}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Open Source","item":"https://daily.dev/squads/opensourcesquad"},{"@type":"ListItem","position":3,"name":"is-kit v1.15.0: Exhaustive Discriminated Union Guards"}]}
```

