feat(typescript-types): Add Assign<Shape,Defaults,Obj>

This commit is contained in:
T. R. Bernstein
2025-07-14 12:59:15 +02:00
parent 48076172bf
commit 610e7a0518
3 changed files with 46 additions and 0 deletions

View File

@@ -0,0 +1,9 @@
import type { OptionalKeysOf } from './optional-keys-of.js'
export type Assign<
Shape extends object,
Defaults extends Pick<Required<Shape>, OptionalKeysOf<Shape>>,
Obj extends Shape
> = {
[K in keyof Shape]: K extends keyof Obj ? Obj[K] : K extends keyof Defaults ? Defaults[K] : never
}