Skip to content

Commit 5239c45

Browse files
committed
Better flow of types
1 parent 44ed9a5 commit 5239c45

File tree

2 files changed

+15
-18
lines changed

2 files changed

+15
-18
lines changed

packages/demo/src/app/pages/movie/movie-page.component.ts

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { Apollo, gql } from 'apollo-angular';
22
import { Observable } from 'rxjs';
33
import { filter, map } from 'rxjs/operators';
44
import { AsyncPipe } from '@angular/common';
5-
import { Component, OnInit } from '@angular/core';
5+
import { Component, inject, OnInit } from '@angular/core';
66
import { ActivatedRoute, RouterLink } from '@angular/router';
77

88
interface Character {
@@ -21,6 +21,10 @@ interface Query {
2121
film: Film;
2222
}
2323

24+
interface Variables {
25+
id: string;
26+
}
27+
2428
@Component({
2529
selector: 'author-page',
2630
template: `
@@ -43,21 +47,13 @@ interface Query {
4347
})
4448
export class MoviePageComponent implements OnInit {
4549
film$!: Observable<Film>;
46-
47-
constructor(
48-
private readonly apollo: Apollo,
49-
private readonly route: ActivatedRoute,
50-
) {}
50+
private readonly apollo = inject(Apollo);
51+
private readonly route = inject(ActivatedRoute);
5152

5253
ngOnInit() {
5354
this.film$ = this.apollo
54-
.watchQuery<
55-
Query,
56-
{
57-
id: string;
58-
}
59-
>({
60-
query: gql`
55+
.watchQuery({
56+
query: gql<Query, Variables>`
6157
query FilmCharacters($id: ID) {
6258
film(id: $id) {
6359
title

packages/demo/src/app/pages/movies/movies-page.component.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { Apollo, gql } from 'apollo-angular';
22
import { Observable } from 'rxjs';
33
import { filter, map } from 'rxjs/operators';
44
import { AsyncPipe } from '@angular/common';
5-
import { Component, OnInit } from '@angular/core';
5+
import { Component, inject, OnInit } from '@angular/core';
66
import { RouterLink } from '@angular/router';
77

88
interface Film {
@@ -16,6 +16,8 @@ interface Query {
1616
allFilms: { films: Film[] };
1717
}
1818

19+
type Variables = Record<PropertyKey, never>;
20+
1921
@Component({
2022
selector: 'movies-page',
2123
template: `
@@ -37,13 +39,12 @@ interface Query {
3739
})
3840
export class MoviesPageComponent implements OnInit {
3941
films$!: Observable<Film[]>;
40-
41-
constructor(private readonly apollo: Apollo) {}
42+
private readonly apollo = inject(Apollo);
4243

4344
ngOnInit() {
4445
this.films$ = this.apollo
45-
.watchQuery<Query>({
46-
query: gql`
46+
.watchQuery({
47+
query: gql<Query, Variables>`
4748
query AllFilms {
4849
allFilms {
4950
films {

0 commit comments

Comments
 (0)