Skip to content

StripNever ​

Since 1.2.0

Strip never from object.

Signature ​

typescript
type StripNever<T> = {
  [K in keyof T as T[K] extends never ? never : K]: T[K]
}

Parameters ​

ParameterDescription
TThe object type to process

Description ​

Removes properties with never type from an object type. Useful for filtering out invalid or excluded properties.

Examples ​

Basic Usage ​

typescript
import type { StripNever } from 'uni-types'

type MyObject = {
  name: string
  invalid: never
  age: number
}

type Result = StripNever<MyObject>
// { name: string; age: number }

With Conditional Types ​

typescript
import type { StripNever } from 'uni-types'

type MyUnion = 'a' | 'b' | 'c'
type Filtered = {
  [K in MyUnion]: K extends 'a' ? never : K
}

type Result = StripNever<Filtered>
// { b: 'b'; c: 'c' }

Released under the MIT License.