@romaro

Как типизировать асинхронный конструктор, если он не возвращает экземпляр?

Думал, что будет работать такой код, но нет:
type SomeConstructor = new() => Promise<string>;

class Some {
    constructor(args: ConstructorParameters<SomeConstructor>) {
        return this.response('test');
    }

    response(v: string) {
        return Promise.resolve(v);
    }
}
  • Вопрос задан
  • 93 просмотра
Пригласить эксперта
Ответы на вопрос 2
Конструктор по определению не может быть асинхронным
Ответ написан
vabka
@vabka
Токсичный шарпист
Попробуй вместо "асинхронного конструктора" сделать асинхронный фабричный метод, который будет возвращать промис с полностью собранным объектом

class Something {
    constructor(private text: string){

    }
    
    public static async create(): Promise<Something>{
        const text = await Promise.resolve("txt");
        return new Something(text);
    }
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы