22 lines
272 B
TypeScript
22 lines
272 B
TypeScript
|
interface ObjA {
|
||
|
y?:string,
|
||
|
}
|
||
|
|
||
|
interface ObjB {[key:string]:any}
|
||
|
|
||
|
interface Opts<A, B> {a:A, b:B}
|
||
|
|
||
|
const fn = <
|
||
|
A extends ObjA,
|
||
|
B extends ObjB = ObjB
|
||
|
>(opts:Opts<A, B>):string => 'Z'
|
||
|
|
||
|
interface MyObjA {
|
||
|
x:string,
|
||
|
}
|
||
|
|
||
|
fn<MyObjA>({
|
||
|
a: {x: 'X', y: 'Y'},
|
||
|
b: {},
|
||
|
})
|