машинопись использовать универсальный определить обещание возвращаемое значение неправильно - PullRequest
0 голосов
/ 04 ноября 2019

Я хочу использовать универсальный тип для определения возвращаемого значения обещания, когда я вызываю метод get, я определяю IReq & IRsp, но IRsp (U) кажется неправильным.

  • TS2345: Аргументtype '{status: string;данные: {};} 'нельзя назначить параметру типа' U |PromiseLike '.
  • Type' {status: string;данные: {};} 'нельзя назначить типу' U '. '{status: string;данные: {};} 'присваивается ограничению типа' U ', но экземпляр U может быть создан с другим подтипом ограничения' {} '.
const httpTest = {
  get<T, U>(options: T) {
    return new Promise<U>((resolve, reject) => {
      // async
      setTimeout(() => {
        const res = { status: '', data: {} };
        resolve(res);
      }, 2000);
    });
  },
};

interface IReq {
  url: string;
  data: {
    [propName: string]: any;
  };
}

interface IRsp<K> {
  status: string;
  data?: K;
}

httpTest.get<IReq, IRsp<{ name: string; age: number }>>({
  url: '/api/v2/config/get',
  data: {
    key: 'test',
  },
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...