Почему не работает перезагрузка метода?
Я имею такой код:
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")
// ^?
Почему-то я не могу передать вторым параметром текст, пишет, что ожидается один аргумент, что я делаю не так?
Получается я должен делать что-то такое?
Источник: Stack Overflow на русском