interface Klass {
method(s: string): void
}
class Klass {
method(s) {return new Promise()}
}
Т.е. интерфейс описывает класс с методом, который ничего не возвращает, я пишу реализацию, которая возвращает промис, а TS не ругается на несовпадение типов. Почему?
потому что void не Promise?
так оно НЕ ругается. Если бы ругалось - вопроса не стояло бы
а, пропустил, класс не экстендит же интерфейс
вообще, я думал, исходя из доки, что если назвать интерфейс и класс одинаково - оно само подключается как надо. Но вот сделал class Klass implements Klass - тоже нет ошибки. Или я опять не так делаю что-то?
: void вообще не запрещает что то возвращать
это если стрикта нет
Да вроде нет, какой то новый стрикт добавили?
"strict": true,
а не, вру, действительно
Обсуждают сегодня