Empecé a aprender mecanografiado, pero su concepto clásico en el que tanto los tipos como el código de tiempo de ejecución están dentro de un archivo ts no me parece particularmente atractivo. En cambio, me gustaría seguir escribiendo javascript como antes, pero agregar a mis módulos archivos d.ts con tipeos para verificaciones de tipos, sugerencias, etc.
Entonces, como veo, al importar algunos pares js + d.ts en un archivo js con la opción checkJs habilitada, TypeScript verificará ese archivo para el uso correcto del tipo basado en el archivo d.ts. Pero lo que también necesito es el mismo comportamiento para el propio módulo js importado. Es decir, haga que TypeScript conozca los valores de los tipos que recibe mi módulo js, verifique el uso correcto de esos tipos y verifique que el módulo implemente la declaración.
Suena un poco confuso, lo sé, así que déjame describirlo con un ejemplo:
// adts export function a(val: string): string; // a.js // Correct module implementation export function a(val) { return `Hello ${val}`; } // a.js // There must be two errors: // argument is a string that doesn't have a "toFixed" method, // and function return type is not a string anyway export function a(val) { return {val: val.toFixed()}; } Este es el comportamiento que me gustaría ver, pero no lo que realmente sucede. Porque en realidad no pasa nada; mecanografiado no usa información de adts para a.js
He buscado en https://www.typescriptlang.org/docs y no parece encontrar nada útil. ¿Es posible? Si es así, ¿cómo lograr tal comportamiento?