TS. Метод класса не следует своей сигнатуре в интерфейсе

Имеется класс с методом:

public myMethod(age: number, name: string): this {
    // code
}

Имеется интерфейс, который описывает данный класс и все его публичные методы, включая тот, что выше:

interface MyInterface {
    myMethod(age: number, name: string): this;
}

Приведенный интерфейс действительно отслеживает myMethod и он начнет ругаться, если я нарушу тип данных в методе myMethod, допустим изменив на age: string.

Но мне казалось логичным убрать в таком случае описание из самого метода и превратить его в:

public myMethod(age, name) {
    // code
}

Если интерфейс следит за этим делом, то почему нет? Но видимо нет. Что мне теперь приделывать отдельный тип на myMethod? Как можно решить данную проблему?

И как можно задать в интерфейсе параметры конструктора?

interface MyInterface {
    new(arg1: string, arg2: []number): <не пойму, а что тут?>;
}

Спасибо


Ответы (0 шт):