Как определить шаблон для абстрактных методов класса машинописи? - PullRequest
0 голосов
/ 06 февраля 2019

Когда мы создаем абстрактный класс в TypeScript, он выглядит следующим образом:

export abstract class Test {
    abstract anAbstractMethod(): void;
    public aPublicMethod(): void {}
}

... А потом, когда мы расширяем некоторый класс с ним:

export class TestSon extends Test {
    anAbstractMethod(): void {
        throw new error('Method not implemented!');
    };
}

Это throw new error('Method not implemented!');создан, чтобы помочь нам не забыть реализовать свой код.Я не знаю, делает ли это VSCode или это предопределенная вещь TypeScript.

Кто-нибудь знает, как изменить эту строку на какой-то другой код.Было бы очень хорошо, если бы мы могли определить шаблон для каждого абстрактного метода, сообщив следующему программисту, что более или менее должно быть закодировано в методе, вместо того, чтобы зависеть только от комментариев ...

1 Ответ

0 голосов
/ 07 февраля 2019

Но ... если вам нужен предопределенный код, разве вы не должны использовать для этого абстрактный класс?Методы абстрактного класса могут быть переопределены или нет при необходимости.

abstract class Test {
    aMethod(): void {      
      console.log("not yet implemented")
    }
    anotherMethod(): void {      
      console.log("not yet implemented")
    }
}

class TestSon extends Test {
   anotherMethod(){
     console.log("this is implemented")
   }
}

let s = new TestSon()
s.aMethod()
s.anotherMethod()
...