import { TupleTypes , mergeProps } from "@components/shared" ; import { expectAssignable } from "@typescript/tests" ; const a1 = { } ; const a2 = { c : "value" } ; const a3 = { d : true } ; const result = mergeProps ( a1 , a2 , a3 ) ; expectAssignable < { a ? : string ; b ? : string ; c ? : string ; d : boolean ; } > ( result ) ; const expectedType = "a" as number | boolean | string ; expectAssignable < TupleTypes < [ number , boolean , string ] > > ( expectedType ) ; expectAssignable < TupleTypes < ( number | boolean | string ) [ ] > > ( expectedType ) ;