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: {},
|
|
})
|