Я пытаюсь реализовать универсальный интерфейс функций и не могу заставить его работать.
IToken.ts
export interface IToken {
token: string;
expires: number;
}
ITokenMapper.ts
export interface ITokenMapper {
<T>(apiResult: any): T;
}
tokenMapper.ts
import {ITokenMapper} from "./interfaces/ITokenMapper";
import {IToken} from "./interfaces/IToken";
export const tokenMapper: ITokenMapper = function <IToken>(apiResult: any): IToken {
if(apiResult.token && apiResult.expires) {
return {token: apiResult.token as string, expires: apiResult.expires as number}
}
throw new Error('Unable to parse token');
};
Вот скриншот из tokenMapper.ts
о том, что импорт IToken не используется, но я должен его использовать:
![tokenMapper.ts](https://i.stack.imgur.com/hVp2r.png)
Редактировать: Использование Typescript 3.0.3