Skip to content

Commit

Permalink
refactor(core): change abstract classes for interfaces (angular#12324)
Browse files Browse the repository at this point in the history
BREAKING CHANGE: Because all lifecycle hooks are now interfaces
the code that uses 'extends' keyword will no longer compile.

To migrate the code follow the example below:

Before:
```
@component()
class SomeComponent extends OnInit {}
```
After:
```
@component()
class SomeComponent implements OnInit {}
```

we don't expect anyone to be affected by this change.

Closes angular#10083
  • Loading branch information
DzmitryShylovich authored and Zhicheng Wang committed Aug 11, 2017
1 parent 93287a0 commit 3293107
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 24 deletions.
16 changes: 8 additions & 8 deletions modules/@angular/core/src/metadata/lifecycle_hooks.ts
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ export const LIFECYCLE_HOOKS_VALUES = [
*
* @stable
*/
export abstract class OnChanges { abstract ngOnChanges(changes: SimpleChanges): void; }
export interface OnChanges { ngOnChanges(changes: SimpleChanges): void; }

/**
* @whatItDoes Lifecycle hook that is called after data-bound properties of a directive are
Expand All @@ -66,7 +66,7 @@ export abstract class OnChanges { abstract ngOnChanges(changes: SimpleChanges):
*
* @stable
*/
export abstract class OnInit { abstract ngOnInit(): void; }
export interface OnInit { ngOnInit(): void; }

/**
* @whatItDoes Lifecycle hook that is called when Angular dirty checks a directive.
Expand All @@ -89,7 +89,7 @@ export abstract class OnInit { abstract ngOnInit(): void; }
*
* @stable
*/
export abstract class DoCheck { abstract ngDoCheck(): void; }
export interface DoCheck { ngDoCheck(): void; }

/**
* @whatItDoes Lifecycle hook that is called when a directive, pipe or service is destroyed.
Expand All @@ -104,7 +104,7 @@ export abstract class DoCheck { abstract ngDoCheck(): void; }
*
* @stable
*/
export abstract class OnDestroy { abstract ngOnDestroy(): void; }
export interface OnDestroy { ngOnDestroy(): void; }

/**
*
Expand All @@ -118,7 +118,7 @@ export abstract class OnDestroy { abstract ngOnDestroy(): void; }
*
* @stable
*/
export abstract class AfterContentInit { abstract ngAfterContentInit(): void; }
export interface AfterContentInit { ngAfterContentInit(): void; }

/**
* @whatItDoes Lifecycle hook that is called after every check of a directive's content.
Expand All @@ -130,7 +130,7 @@ export abstract class AfterContentInit { abstract ngAfterContentInit(): void; }
*
* @stable
*/
export abstract class AfterContentChecked { abstract ngAfterContentChecked(): void; }
export interface AfterContentChecked { ngAfterContentChecked(): void; }

/**
* @whatItDoes Lifecycle hook that is called after a component's view has been fully
Expand All @@ -143,7 +143,7 @@ export abstract class AfterContentChecked { abstract ngAfterContentChecked(): vo
*
* @stable
*/
export abstract class AfterViewInit { abstract ngAfterViewInit(): void; }
export interface AfterViewInit { ngAfterViewInit(): void; }

/**
* @whatItDoes Lifecycle hook that is called after every check of a component's view.
Expand All @@ -155,4 +155,4 @@ export abstract class AfterViewInit { abstract ngAfterViewInit(): void; }
*
* @stable
*/
export abstract class AfterViewChecked { abstract ngAfterViewChecked(): void; }
export interface AfterViewChecked { ngAfterViewChecked(): void; }
32 changes: 16 additions & 16 deletions tools/public_api_guard/core/typings/core.d.ts
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
/** @stable */
export declare abstract class AfterContentChecked {
abstract ngAfterContentChecked(): void;
export interface AfterContentChecked {
ngAfterContentChecked(): void;
}

/** @stable */
export declare abstract class AfterContentInit {
abstract ngAfterContentInit(): void;
export interface AfterContentInit {
ngAfterContentInit(): void;
}

/** @stable */
export declare abstract class AfterViewChecked {
abstract ngAfterViewChecked(): void;
export interface AfterViewChecked {
ngAfterViewChecked(): void;
}

/** @stable */
export declare abstract class AfterViewInit {
abstract ngAfterViewInit(): void;
export interface AfterViewInit {
ngAfterViewInit(): void;
}

/** @experimental */
Expand Down Expand Up @@ -385,8 +385,8 @@ export interface DirectiveDecorator {
}

/** @stable */
export declare abstract class DoCheck {
abstract ngDoCheck(): void;
export interface DoCheck {
ngDoCheck(): void;
}

/** @stable */
Expand Down Expand Up @@ -678,18 +678,18 @@ export declare class NgZone {
export declare const NO_ERRORS_SCHEMA: SchemaMetadata;

/** @stable */
export declare abstract class OnChanges {
abstract ngOnChanges(changes: SimpleChanges): void;
export interface OnChanges {
ngOnChanges(changes: SimpleChanges): void;
}

/** @stable */
export declare abstract class OnDestroy {
abstract ngOnDestroy(): void;
export interface OnDestroy {
ngOnDestroy(): void;
}

/** @stable */
export declare abstract class OnInit {
abstract ngOnInit(): void;
export interface OnInit {
ngOnInit(): void;
}

/** @deprecated */
Expand Down

0 comments on commit 3293107

Please sign in to comment.