angular-cn/dev-infra
Paul Gschwendtner 04642e7985 feat(dev-infra): add lint rule to enforce no-implicit-override abstract members (#42512)
TypeScript introduced a new flag called `noImplicitOverride` as part
of TypeScript v4.3. This flag introduces a new keyword called `override`
that can be applied to members which override declarations from a base
class. This helps with code health as TS will report an error if e.g.
the base class changes the method name but the override would still
have the old method name. Similarly, if the base class removes the method
completely, TS would complain that the memeber with `override` no longer
overrides any method.

A similar concept applies to abstract methods, with the exception that
TypeScript's builtin `noImplicitOverride` option does not flag members
which are implemented as part of an abstract class. We want to enforce
this as a best-practice in the repository as adding `override` to such
implemented members will cause TS to complain if an abstract member is
removed, but still implemented by derived classes.

More details: https://github.com/microsoft/TypeScript/issues/44457.

PR Close #42512
2021-07-12 13:11:16 -07:00
..
bazel feat(dev-infra): add bazel rule for extracting JavaScript module flavors from targets (#42809) 2021-07-12 09:42:01 -07:00
benchmark build: update to rules_nodejs v4.0.0-beta.0 (#42760) 2021-07-09 14:50:15 -07:00
caretaker build: update to rules_nodejs v4.0.0-beta.0 (#42760) 2021-07-09 14:50:15 -07:00
commit-message build: update to rules_nodejs v4.0.0-beta.0 (#42760) 2021-07-09 14:50:15 -07:00
format build: update to rules_nodejs v4.0.0-beta.0 (#42760) 2021-07-09 14:50:15 -07:00
misc build: update to rules_nodejs v4.0.0-beta.0 (#42760) 2021-07-09 14:50:15 -07:00
ngbot build: update to rules_nodejs v4.0.0-beta.0 (#42760) 2021-07-09 14:50:15 -07:00
pr build: update to rules_nodejs v4.0.0-beta.0 (#42760) 2021-07-09 14:50:15 -07:00
pullapprove build: update to rules_nodejs v4.0.0-beta.0 (#42760) 2021-07-09 14:50:15 -07:00
release refactor(dev-infra): ensure compatibility with noImplicitOverride (#42512) 2021-07-12 13:11:14 -07:00
ts-circular-dependencies build: update to rules_nodejs v4.0.0-beta.0 (#42760) 2021-07-09 14:50:15 -07:00
tslint-rules feat(dev-infra): add lint rule to enforce no-implicit-override abstract members (#42512) 2021-07-12 13:11:16 -07:00
utils refactor(dev-infra): ensure compatibility with noImplicitOverride (#42512) 2021-07-12 13:11:14 -07:00
BUILD.bazel feat(dev-infra): add lint rule to enforce no-implicit-override abstract members (#42512) 2021-07-12 13:11:16 -07:00
build-worker.js refactor(dev-infra): update octokit to latest version v18 (#42666) 2021-06-29 10:33:54 -07:00
cli.ts feat(dev-infra): add `ng-dev build-and-link` command (#42319) 2021-05-25 22:11:03 +00:00
commit-message-filter.js refactor(dev-infra): create ng-dev executable locally in the repo (#39089) 2020-10-22 13:36:14 -07:00
defaults.bzl build: update to rules_nodejs v4.0.0-beta.0 (#42760) 2021-07-09 14:50:15 -07:00
index.bzl build: update to rules_nodejs v4.0.0-beta.0 (#42760) 2021-07-09 14:50:15 -07:00
ng-dev.js fix(dev-infra): convert commit SHAs and PR numbers to links when generating changelog (#42732) 2021-07-02 09:23:45 -07:00
tmpl-package.json feat(dev-infra): introduce shared tool for validating API signature (#42688) 2021-06-30 11:43:48 -07:00
tsconfig.json build: enable noImplicitOverride in project (#42512) 2021-07-12 13:11:14 -07:00