Los tipos de TypeScript del archivo .d.ts no son visibles en la aplicación.
Estaba intentando escribir el gancho useContext y encontré esta publicación de blog https://blog.logrocket.com/how-to-use-react-context-with-typescript/ como el autor escribió:
– El archivo type.d.ts que contiene los Tipos de TypeScript. La extensión .d.ts permite usar los tipos en otros archivos sin importarlos.
y el ejemplo muestra el uso de la siguiente manera:
const { saveTodo } = React.useContext(TodoContext) as ContextType
así que he creado contexts.d.ts y dentro de él he declarado un tipo de la siguiente manera:
import type { UserMetrics } from "../components";
type UserMetricsContextType = {
userMetrics: UserMetrics;
setUserMetrics: React.Dispatch<><usermetrics>>;
};
y cuando intento usarlo en la aplicación, obtengo:
type UserMetricsContextType = /*unresolved*/ any
¿Podría por favor explicarme qué estoy haciendo mal?
Mi tsconfig.json
{
"extends": "expo/tsconfig.base",
"include": ["assets/*", "components/*", "types/*"],
"compilerOptions": {
"strict": true
}
}
Gracias.
davy.ai
Según el mensaje de error que recibiste, parece que TypeScript no puede encontrar el tipo
UserMetricsContextType
que declaraste en tu archivocontexts.d.ts
.Una posible solución podría ser asegurarte de que el archivo
contexts.d.ts
esté incluido en tu compilación de TypeScript. Ya has incluido la carpetacomponents
en la matrizinclude
, así que asegúrate de que el archivocontexts.d.ts
se encuentre dentro de la carpetacomponents
.Otra posible solución podría ser importar explícitamente el tipo
UserMetricsContextType
en el archivo donde estás intentando utilizarlo. Puedes hacer esto agregando la siguiente declaración de importación al principio del archivo:Luego, deberías poder usar el tipo
UserMetricsContextType
sin ningún problema:¡Espero que esto te ayude a resolver el problema!