## Inheritance Semantics:
Decorators:
1) list the decorators of the class and its parents in the ancestor first order
2) only use the last decorator of each kind (e.g. @Component / ...)
Constructor parameters:
If a class inherits from a parent class and does not declare
a constructor, it inherits the parent class constructor,
and with it the parameter metadata of that parent class.
Lifecycle hooks:
Follow the normal class inheritance model,
i.e. lifecycle hooks of parent classes will be called
even if the method is not overwritten in the child class.
## Example
E.g. the following is a valid use of inheritance and it will
also inherit all metadata:
```
@Directive({selector: 'someDir'})
class ParentDirective {
constructor(someDep: SomeDep) {}
ngOnInit() {}
}
class ChildDirective extends ParentDirective {}
```
Closes#11606Closes#12892
For specific plunkers, e.g. "QuickStart (reboot edition)" PR #2762, that shouldn't have AppModule or main.ts
Rescinds the automatic bootstrapping and exclusion of `main.ts` in #2786 and #2756
Only autoBootstraps when `window.autoBootstrap === true`.
This is needed to resolve symbols without `.d.ts` files.
This bumps the version of the metadata from 1 to 2.
This adds logic into `ng_host.ts` to automatically upgrade
version 1 to version 2 metadata by adding the exported symbols
from the `.d.ts` file.
Contributes to #2407
- Dropped the “2” in “Angular 2” and “angular2_*” where appropriate.
- Did a partial sync of `_cache/guide/pipes.jade`
- In quickstart, changed `Try changing the message to "Hello Angular
2!”` to `Try changing the message to "Hello Again Angular!”`.
* plunker builder removes files and scripts not needed in plunkers (e.g., systemjs.config.js)
* no longer adds placeholder README.md (deemed a distraction)
* tag is now "Angular" instead of "Angular2"
* new plnkr.json "includeSystemConfig" option adds systemjs.config.js back; needed for testing plnkrs.
* incidentally changes comment "Polyfill(s)" to "Polyfills" in all index.html
Add support for the `$postDigest()` and `$onDestroy()` lifecycle hooks.
Better align the behavior of the `$onChanges()` and `$onInit()` lifecycle hooks
with Angular 1.x:
- Call `$onInit()` before pre-linking.
- Always instantiate the controller before calling `$onChanges()`.
Bug in Jasmine v.2.5.x. Stick with v.2.4.1 (as karma-jasmine does) until the following issue is resolved:
https://github.com/jasmine/jasmine/issues/1231
Unfortunately, there is no `@types/jasmine` for v.2.4 but only for v.2.5.