Tengo dos paquetes locales, package1 y package2 , y quiero usar un tipo de TypeScript Car declarado en un archivo separado y exportado desde package1 en package2 .
La estructura del package1 es:
package1/ src/ index.ts car.d.ts lib/ index.d.ts // generated tsconfig.json package.json index.ts del package1 solo tiene una línea:
export {Car} from './car'; Entonces, solo está reexportando el tipo declarado en car.d.ts , que puede ser algo así como
export interface Car { brand: string; }; Ahora quiero usar el paquete local package1 en el paquete local package2 . despues de correr
npm i local/path/to/package1 Obtengo la siguiente estructura para el package2 :
package2/ src/ index.ts lib/ node_modules/ package1/ // link to other package tsconfig.json packjage.json Todo bien hasta ahora. index.ts del package2 2 ahora intenta importar Car :
import {Car} from './package1'; Pero eso no funciona; más precisamente, Car se interpreta repentinamente como un sinónimo de any (¡así que escribir no funciona)! Peor aún, no puedo compilar el package2 porque al aplicarle tsc me da: "error TS2307: Cannot find module './car' or its corresponding type declarations."
Mi tsconfig.json para ambos paquetes es el siguiente:
{ "compilerOptions": { "target": "es2016", "module": "commonjs", "declaration": true, "strict": true, "removeComments": false, "sourceMap": true, "declarationMap": true, "downlevelIteration": true, "esModuleInterop": true, "rootDir": "./src", "outDir": "./lib" }, "include": ["src/**/*"], "exclude": ["node_modules", "**/*.spec.ts"] }