0

Маленький бажок в Typescript примере Chain of Responsibility

Александр Трутанов 3 months ago updated 3 months ago 1
Привет! Спасибо за прекрасный сайт

Есть небольшое уточнение. В интерфейсе и абстрактном классе Handler и Abstract Handler тип возвращаемого значения функции handle() указан как string:

Раз:
interface Handler {
    setNext(handler: Handler): Handler;

    handle(request: string): string;
}

Два:

    public handle(request: string): string {
        if (this.nextHandler) {
            return this.nextHandler.handle(request);
        }

        return null;
    }    

Должно быть string | null

Либо как вариант в абстрактном хэндлере не null возвращать (это потребует изменения и в типах возвращаемых значений конкретных хэндлеров), а дефолтную строку в духе "Запрос остался необработанным"