bibliomar / bibliomar-client

The front-end client for Bibliomar: A complete reading suite built for educational purposes.
https://www.bibliomar.site
MIT License
12 stars 3 forks source link

Melhoria de tipagem - Typescript #10

Closed Lamarcke closed 1 year ago

Lamarcke commented 2 years ago

Problema: muito código no Bibliomar usa de conhecimento prévio para saber os possíveis resultados, principalmente quanto a requisição a APIs e objetos. Nós estamos usando Typescript por um motivo e seria uma pena não aproveitar o potencial dessa ferramenta.

Objetivo: melhorar a tipagem do aplicativo no geral.

Requisitos gerais: É intessante registrar esses novos tipos nas pastas de componentes as quais eles pertencem. As unicas exceções são tipos que abrangem todo o aplicativo, como o Book.

Por exemplo, se eu desejo descrever uma interface ou tipo de uma variavel dentro de algum componente na pasta components/reader, o mais interessante é criar uma nova pasta chamada helpers, junto de um arquivo readerTypes.ts, e exportar os novos tipos a partir desse arquivo.

Para as tipagens relevantes a toda a aplicação, utilizar o arquivo em src/helpers/generalTypes.ts

Um exemplo de interface que descreve os elementos de um determinado resultado de pesquisa, ou arquivo armazenado na biblioteca do usuario:

interface Book {
    series: string;
    title: string;
    authors: string;
    language: string;
    file: string;
    mirror1: string;
    mirror2?: string;
    md5: string;
    topic: string;
    extension: string;
    size: string;
}

export type { Book };
Lamarcke commented 1 year ago

Poucas requisições não está mapeadas atualmente.