reactjs - Skriva en GraphQL-förfrågan med obligatorisk variabel med TypeScript


Finns det ett sätt med TypeScript (eller något annat verktyg) att kasta ett fel vid kompilering/build-tid om jag använder en GraphQL-fråga utan att skicka en obligatorisk variabel?

Till exempel har jag denna GraphQL-fråga:

query booksByAuthor($author: String!) {
  books(author: $author) {
    title
    year
  }
}

dessa TS-typer:

interface Book {
  title: string;
  year: number;
}

interface BooksByAuthorType {
  books: [Book];
}

interface BooksByAuthorVariables {
  author: string;
}

och denna React-komponent (hämtar data med @apollo/react-hooks):

const Books = () => {
  const { data } = useQuery<
    BooksByAuthorType,
    BooksByAuthorVariables
  >(query); // notice I'm not passing `author` here

  return (
    <ul>
      {data.books.map(
        book => <li>{`${book.name} (${book.year})`}</li>
      )}
    </ul>
  );
}

Hur använder jag TypeScript (eller något annat verktyg) för att få ett fel i det här fallet?

Relaterade artiklar