feat(typescript-types): Add Simplify<T, E, I>
This commit is contained in:
44
packages/typescript-types/test/simplify.tst.ts
Normal file
44
packages/typescript-types/test/simplify.tst.ts
Normal file
@@ -0,0 +1,44 @@
|
||||
import type { Simplify } from '@/simplify.js'
|
||||
import { expect } from 'tstyche'
|
||||
|
||||
type TyreSize = {
|
||||
radius: number
|
||||
type: 'winter' | 'summer'
|
||||
}
|
||||
|
||||
type Maker = {
|
||||
maker: string
|
||||
}
|
||||
|
||||
type TyreMaker = Maker & TyreSize
|
||||
|
||||
type SimplifiedTyreMaker = {
|
||||
radius: number
|
||||
type: 'winter' | 'summer'
|
||||
maker: string
|
||||
}
|
||||
|
||||
expect<TyreMaker>().type.not.toBe<SimplifiedTyreMaker>()
|
||||
expect<Simplify<TyreMaker>>().type.toBe<SimplifiedTyreMaker>()
|
||||
|
||||
type Train = {
|
||||
wheels: TyreMaker[]
|
||||
}
|
||||
|
||||
type SimplifiedTrain = {
|
||||
wheels: SimplifiedTyreMaker[]
|
||||
}
|
||||
|
||||
expect<Train>().type.not.toBe<SimplifiedTrain>()
|
||||
expect<Simplify<Train>>().type.toBe<SimplifiedTrain>()
|
||||
|
||||
type Car = {
|
||||
wheels: [TyreMaker, TyreMaker]
|
||||
}
|
||||
|
||||
type SimplifiedCar = {
|
||||
wheels: [SimplifiedTyreMaker, SimplifiedTyreMaker]
|
||||
}
|
||||
|
||||
expect<Car>().type.not.toBe<SimplifiedCar>()
|
||||
expect<Simplify<Car>>().type.toBe<SimplifiedCar>()
|
||||
Reference in New Issue
Block a user