я хочу объявить функцию, которая возвращает общий тип или его расширенный тип
interface Common {
id: number;
}
interface AdditionalInformation extends Common {
myname: string;
}
Конечно, функция возвращает объект, содержащий id свойство
и желающийон также может вернуть свойство myname
Я попытался объявить функцию следующим образом:
export class Lib {
public static lowestCommonDenominator <T extends Common>(): Common {
const a: Common = { id: 1 };
return a;
}
public static firstCaseFunction(): Common {
const ok: Common = this.lowestCommonDenominator();
return ok;
}
public static secondCaseFunction(): AdditionalInformation {
// Property 'myname' is missing in type 'Common' but required in type 'AdditionalInformation'.ts(2741)
const ko: AdditionalInformation = this.lowestCommonDenominator();
return ko;
}
}
Но когда я назначаю функцию расширенному типу, я получаюошибка:
Свойство 'myname' отсутствует в типе 'Common', но требуется в типе 'AdditionalInformation'.ts (2741)
Возможно ли реализовать то, чтоЯ хочу?