Почему не работает перезагрузка метода?

Рейтинг: 0Ответов: 0Опубликовано: 08.04.2023

Я имею такой код:

TS Playground

export type TaskType = "return professions";

class Bot
{
  async getResponseBot(text: string): Promise<string>;
  async getResponseBot<T extends TaskType | undefined>(text: string, task?: T): Promise<T extends "return professions"? string[] : string>
  {
    return await post<T extends "return professions" ? string[] : string>()
  }
}

function post<T>(): Promise<T>
{
  return Promise.resolve("" as T)
}

const bot = new Bot()

bot.getResponseBot("test")
//  ^?

bot.getResponseBot("test", "return professions")
//  ^?

Почему-то я не могу передать вторым параметром текст, пишет, что ожидается один аргумент, что я делаю не так?


Получается я должен делать что-то такое?

Ответы

Ответов пока нет.