Я пытаюсь создать интерфейс, который перечисляет набор функций, которые должны реализовывать классы. Тем не менее, я сталкиваюсь со странной проблемой типизации Types of parameters XXX and 'args' are incompatible
при реализации классов. Ниже приведен код (работает машинопись 3.8.3), здесь есть ссылка на игровую площадку
interface ICoreFunctions {
getAll<T>(...args: T[]): any;
}
interface IFirst<F> {
value:F
}
interface ISecond<S> {
data:S
}
class ClsTest<TTest1 extends string> implements ICoreFunctions {
public getAll(valBool:IFirst<boolean>, valString:ISecond<string>, num:number): TTest1 <-----Type 'T' is not assignable to type 'IFirst<boolean>'
{
const t:TTest1 = ""
console.log(valBool, valString,num)
return t
}
}
class Cls2 implements ICoreFunctions {
public getAll():void { <--- no error here
console.log("test2")
}
}