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,29 @@
import type { Assign } from '@/assign.js'
import { expect } from 'tstyche'
interface Person {
name: string
age?: number
}
interface Options extends Person {
relations?: Array<Person>
}
interface DefaultValues {
name: 'Max Mustermann'
age: 17
relations: []
}
expect<Assign<Options, DefaultValues, { name: 'Another Name' }>>().type.toBe<{
name: 'Another Name'
age?: 17
relations?: []
}>()
expect<Assign<Options, DefaultValues, { name: 'Another Name'; age: 18 }>>().type.toBe<{
name: 'Another Name'
age?: 18
relations?: []
}>()