Я пытаюсь создать функцию, которая принимает два параметра, первый - это ссылка на класс, а второй - это функция с одним параметром, который является экземпляром ссылки на класс, а вывод - это определенный c тип. , Я попробовал приведенный ниже код, но машинопись показывает мне неизвестный тип для p, хотя я надеюсь, что p был экземпляром Pair.
interface Point{
x: number
y: number
}
class Pair{
key = 0
value = 0
}
function set<Class extends { new (): Type }, Type>(
inputClass: Class,
constructor: (o: Type) => Point) {
//implementation...
}
set(Pair, p => ({x: p.key, y: p.value}))
// Typescript says:
// (parameter) p: unknown
// Object is of type 'unknown'.(2571)
Я хотел, чтобы машинопись знала, что p должен быть экземпляром Pair
Мне удалось реализовать с использованием java обобщений, но я все еще не могу воспроизвести в машинописи. Следуйте коду:
public <K extends Pair, T extends Class<K>> void setRenderer(T classe, Function<K, Point> constructor){
//implementation
}