Me pregunto cómo puedo usar el archivo .d.ts para archivos javascript locales.
Sé que puedo declarar un módulo para dar un tipo a librerías de terceros.
// index.d.ts (wrote on place typeRoots) declare module "random-joke" { const getRandomJoke: () => Promise<any>; export { getRandomJoke }; }como esto. entonces puedo usar esta biblioteca de "bromas aleatorias" con type.
pero que tal esto? Estoy tratando de importar la función {sum} en index.ts
// module/utils.js export function sum(a, b) { return a + b; } export function power(a, b) { return a ** b; } export function multiply(a, b) { return a * b; } import { sum } from "./modules/utils"; //'sum' is declared but its value is never read.ts(6133) //Could not find a declaration file for module './modules/utils'.Intenté declarar un módulo como este. pero no funciona (Hubiera sido bastante divertido si esto funcionara)
De todos modos, probé todo lo que sé. Pero lo único que funcionó fue establecer allowJS:true en tsconfig.json
Sé que no es una respuesta correcta. Entonces, ¿cómo puedo hacer que TypeScript obtenga tipos en el archivo d.ts de manera justa con las funciones de JavaScript?
Incluso una pequeña pista sería de gran ayuda. Gracias
ok, ahora entiendo cómo funcionan estas cosas.
simplemente cree su archivo d.ts con el prefijo de su archivo js.
en este caso, debe hacer "utils.d.ts"
// module/utils.d.ts export declare function sum(a: number, b: number): number; export declare function power(a: number, b: number): number; export declare function multiply(a: number, b: number): number;entonces ts obtendrá tipos comparando el nombre del archivo.
como puede ver, ahora puede usar sus funciones js dentro de los tipos.
solo asegúrese de agregar la ruta del archivo .d.ts en tsconfig.json.
{ //... "typeRoots": [ "./types", "./modules" // my d.ts files are in "types" and "modules" ] /* Specify multiple folders that act like './node_modules/@types'. */ //...Espero que esta respuesta haya sido de ayuda.