export interface A {
a?: string
aa?: number
}
export interface B extends A {
b?: string
bb?: boolean
}
export interface C {
<D extends B>(d: D): void
}
let c: C = <D extends B>(d: D) => {
let h: D = { // Type '{ a: string; aa: number; b: string; bb: false; }' is not assignable to type 'D'.'{ a: string; aa: number; b: string; bb: false; }' is assignable to the constraint of type 'D', but 'D' could be instantiated with a different subtype of constraint 'B'.
a: '',
aa: 1,
b: '',
bb: false
}
}
в объявленной строке h есть Ошибка: Тип '{a: string;аа: номер;б: строка;бб: ложно;} 'нельзя назначить типу' D '.'{ строка;аа: номер;б: строка;бб: ложно;} 'присваивается ограничению типа' D ', но экземпляр D может быть создан с другим подтипом ограничения' B '.