angular/projects/ng-devtools
AleksanderBodurri 1b97432960 fix(devtools): update typing of differ objects to fit the new contract of TrackByFunction (rangle/angular-devtools#862)
Previously `DefaultIterableDiffer` was able to infer the type of it's generic by reading the type contract defined by the user defined trackBy function. This was because `TrackByFunction` can be specified with a generic that is used to type its second argument. If this generic is not provided, like in this case, typescript infers this type from the function contract directly. In this case this inferred type was `FlatNode`. This inference is then propagated to `DefaultIterableDiffer`, which is why we were not seeing this error previously.

A change in the framework made it so the second argument of `TrackByFunction` is typed as a generic that extends the generic passed into `TrackByFunction`. Since we had not previously passed in this generic to `TrackByFunction`, this type was inferred as an extension of `unknown`, causing a type error when passed as an argument to the `DefaultIterableDiffer` constructor.

Now the functions being used are typed directly as `TrackByFunction<FlatNode>`

For clarity, the `DefaultIterableDiffer` generic is now also typed as `FlatNode`.

See https://github.com/angular/angular/pull/41995 for the framework change.
2021-06-21 17:56:43 -07:00
..
src fix(devtools): update typing of differ objects to fit the new contract of TrackByFunction (rangle/angular-devtools#862) 2021-06-21 17:56:43 -07:00
karma.conf.js ci(devtools): fix flaky tests using cypress orb (rangle/angular-devtools#733) 2021-05-23 11:39:48 -07:00
ng-package.json Initial commit for Angular DevTools 2020-01-29 11:52:19 -08:00
package.json build(devtools): update angular-framework 2021-05-17 18:29:07 -07:00
README.md feat(devtools): synchronizing highlight between source application and component in presentation tree (rangle/angular-devtools#35) 2020-02-07 11:43:49 -08:00
tsconfig.lib.json build(devtools): revert solution-style tsconfig to align with cli 2020-08-12 18:10:34 +03:00
tsconfig.lib.prod.json Initial commit for Angular DevTools 2020-01-29 11:52:19 -08:00
tsconfig.spec.json build(devtools): revert solution-style tsconfig to align with cli 2020-08-12 18:10:34 +03:00
tslint.json feat(devtools): added prettier for formatting code on pre-commit (rangle/angular-devtools#50) 2020-02-07 13:25:16 -08:00

ng-devtools

This library was generated with Angular CLI version 9.0.0-rc.5.

Code scaffolding

Run ng generate component component-name --project ng-devtools to generate a new component. You can also use ng generate directive|pipe|service|class|guard|interface|enum|module --project ng-devtools.

Note: Don't forget to add --project ng-devtools or else it will be added to the default project in your angular.json file.

Build

Run ng build ng-devtools to build the project. The build artifacts will be stored in the dist/ directory.

Publishing

After building your library with ng build ng-devtools, go to the dist folder cd dist/ng-devtools and run npm publish.

Running unit tests

Run ng test ng-devtools to execute the unit tests via Karma.

Further help

To get more help on the Angular CLI use ng help or go check out the Angular CLI README.