feat(typescript-types): Add Assign<Shape,Defaults,Obj>
This commit is contained in:
29
packages/typescript-types/test/assign.tst.ts
Normal file
29
packages/typescript-types/test/assign.tst.ts
Normal 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?: []
|
||||
}>()
|
||||
Reference in New Issue
Block a user