在打字稿中注释方法重写,以便于代码审查

bas*_*ash 5 typescript visual-studio-code

是否有任何命名约定,或代码片段编辑,或任何 VS 代码扩展或任何 NPM 库来标记打字稿中的标记覆盖方法。它在进行代码审查时很有用。

就像Java中的重写语法一样

@override << ###### SOMETHING like this ######
@public String toString(){
   // your overridden code.
   return something;
}
Run Code Online (Sandbox Code Playgroud)

Dog*_*ita 11

正如您在此处override看到的,该关键字是在 TypeScript 4.3 中添加的。 使用示例:

class SomeComponent {
  show() {
    // ...
  }
  hide() {
    // ...
  }
}

class SpecializedComponent extends SomeComponent {
  override show() {
    // ...
  }
  override hide() {
    // ...
  }
}
Run Code Online (Sandbox Code Playgroud)

要使其强制执行,您可以noImplicitOverride在 tsconfig.json 中设置 true。


Phi*_*ann 5

截至目前,没有 override 关键字或装饰器,但您可以编写自己的装饰器

const override = < Sup >( sup : { prototype : Sup } ) => <
    Field extends keyof Sup ,
    Proto extends { [ key in Field ] : Sup[ Field ] } ,
>(
    proto : Proto ,
    field : Field ,
    descr : TypedPropertyDescriptor< Sup[ Field ] > ,
)=> {}
Run Code Online (Sandbox Code Playgroud)

并像这样使用它:

class Super {
   myMethod():void {
      console.log("Super")
  }
}

class A extends Super {
  @override(Super)
  myMethod():void {
    console.log("A")
  }
}
Run Code Online (Sandbox Code Playgroud)

摘自github