Type-safety em TypeScript significa que o código é verificado em tempo de compilação para garantir que os tipos de dados sejam usados de maneira consistente e correta. Isso ajuda a evitar erros comuns, como tentar usar uma função com argumentos incorretos ou atribuir uma variável a um tipo de dado incorreto. TypeScript fornece uma série de tipos de dados básicos, como números, strings e booleanos, além de suporte para tipos personalizados, como classes e interfaces. Ao usar esses tipos, você pode garantir que seu código seja mais confiável e fácil de manter. Um exemplo muito claro dos problemas que gerenciadores de rota sem type-safety podem causar é o seguinte:
// Exemplo de rota
<Link to="/clients?sortBy=age&filterBy=true" />Note que os parametros dessa query são extensos e podem ser facilmente confundidos, enviados no formato incorreto ou até mesmo esquecidos, gerando problemas na aplicação.
<Link to="/clients?sendBy=age" />
// ^ O parametro "sortBy" foi enviado incorretamente e esqueceram do "filterBy"Além disso, a qualquer momento o desenvolvedor pode alterar o caminho/nome da rota e esquecer de alterar em algum outro lugar da aplicação, gerando ainda mais problemas.
// ... Rota original alterada para `clients-by`
<Link to="/clients?sortBy=age&filterBy=true" />
// ^ No lugar de "/clients" deveria ser "/clients-by", porém o desenvolvedor se esqueceu disso :(Para resolver esses problemas, o TanStack Router utiliza o sistema de Type-Safety para que o desenvolvedor possa definir os parametros da rota e o tipo de dado que cada um deve receber, além de poder definir o caminho/nome da rota de forma na qual a própria IDE já acusa erros em desenvolvimento. Isso será explanado melhor no tópico de Rotas customizadas.
Made with 💜