Soy un principiante con TypeScript (Día 1), pero he trabajado en proyectos de JavaScript superiores al promedio. Estoy buscando consejos sobre algunas "mejores prácticas" y estándares cuando se trata de declarar o asignar tipos en el código. Por el momento, me encuentro haciéndolo literalmente para todo lo que esencialmente hace que mi código sea ilegible.
Por ejemplo, considera esto:
import {createApp, DefineComponent} from 'vue' import {createRouter, createWebHistory, Router, RouteRecordRaw, RouterHistory} from 'vue-router' import NPage from '~/layouts/N-Page.vue' const router : Router = createRouter({ history: <RouterHistory>createWebHistory(), routes: <RouteRecordRaw[]>[{ component: <DefineComponent>NPage, name: <string>'home', path: <string>'/', }] }) createApp(NPage).use(router).mount('#app') Esta es una configuración simple de main.ts para Vue.js. Ahora, mi IDE (IntelliJ IDEA) pudo determinar el tipo de router por sí mismo. Sin embargo, seguí adelante y declaré el tipo explícitamente. Lo mismo ocurre con el history , routes , etc. Lo que es peor, me encuentro declarando el tipo para cada propiedad individual también ( component , name , path ).
Esto se está complicando mucho, muy rápido. Y por lo que parece, puedo suponer que no es así como se hace. En este caso, ¿alguien podría señalar cómo exactamente tomar decisiones sobre qué necesitamos declarar/asignar tipos y qué no?
Esa no es una buena idea.
Por lo general, no usa tipos explícitos cuando el tipo se infiere de manera trivial. Todas esas funciones devuelven un tipo que Typescript ya conoce y es completamente seguro confiar en ellas.
De hecho, su código de ejemplo debe ser 100% idéntico al equivalente simple de JS:
import {createApp, DefineComponent} from 'vue' import {createRouter, createWebHistory, Router, RouteRecordRaw, RouterHistory} from 'vue-router' import NPage from '~/layouts/N-Page.vue' const router = createRouter({ history: createWebHistory(), routes: [{ component: NPage, name: 'home', path: '/', }] })Dado que ya está importando código fuertemente tipado en este archivo, y no está exportando ninguna de sus propias estructuras de datos, no se requiere nada más aquí.
Un consejo más específico que ese se convertirá en opinión, pero creo que al comenzar, deje los tipos desactivados de forma predeterminada y arregle las cosas cuando vea errores de tipo o pase el cursor sobre un token en su editor y vea el tipo any . any es malo, no dejes que los valores sean any .
Si tiene preguntas más específicas sobre cómo manejar anotaciones de tipos específicos , siéntase libre de hacer una nueva pregunta para esos casos específicos.