使用lambda /箭头函数的TypeScript抽象方法

Cra*_*man 8 lambda abstract typescript arrow-functions typescript1.6

我正在使用TypeScript 1.6,并希望使用抽象方法创建一个抽象类,但在具体类中使用lambda /箭头函数.

这可能吗?下面显示的代码没有像它所说的那样编译

"Class'Base'定义实例成员函数'def',但扩展类'Concrete'将其定义为实例成员属性"......

abstract class Base {
    abstract abc(): void;
    abstract def(): void;
}

class Concrete extends Base {
    private setting: boolean;

    public abc(): void  {
        this.setting = true;
    }

    public def = (): void => {
        this.setting = false;
    }
}
Run Code Online (Sandbox Code Playgroud)

Bru*_*der 2

我对 Typescript 规范的理解是,当你声明

public def = (): void => {
    this.setting = false;
}
Run Code Online (Sandbox Code Playgroud)

您实际上是在类上声明一个property被调用的def而不是一个。methodBase

属性不能(不幸的是恕我直言)在 Typescript 中抽象:https://github.com/Microsoft/TypeScript/issues/4669