javascript - "Tidak dapat menemukan file deklarasi untuk modul", file deklarasi kustom di folder typeRoots diabaikan


Hai, saya mengalami masalah dengan TypeScript. Saya memiliki struktur direktori berikut:

  • package.json: proyek teratas
  • node_modules/: semua pustaka yang terpasang
  • tsconfig.json
  • build/: sebuah folder yang dihasilkan

    • index.js
    • handler.js
    • ...
  • server/: sebuah folder dengan server TypeScript yang dibangun di atas folder build

    • pengetikan/

      • penangan/

        • index.d.ts
        • handler/
        • index.d.ts

        • typings/
        • penangan/
        • index.d.ts

    • tsconfig.json:
    • index.ts: sebuah server TypeScript

File server/tsconfig.json berisi baris-baris

    "compilerOptions": {
        "typeRoots": [
            "../node_modules/@types",
            "./typings"
        ],
    ...
    "include": [
        "./*.ts",
        "./typings/**/*.ts"
    ],

Saya mengimpor fungsi JavaScript yang tidak bertipe di TypeScript di file server/index.ts:

import { handler } from '../build/handler.js'
... (code using handler) ...

File server/typings/handler/index.d.ts berisi

declare module 'handler' {
    export const handler: (a: any) => void 
}

Tetapi berkas deklarasi ini tidak dikenali oleh tsc. Menjalankan npx tsc --project server/tsconfig.json" memberikan

server/index.ts(6,25): error TS7016: Could not find a declaration file for module '../build/handler.js'. '/home/..../build/handler.js' implicitly has an 'any' type.

Menambahkan --traceResolution menunjukkan bahwa lokasi file build/handler.d.ts diperiksa, tetapi lokasi typings/handler/index.d.ts tidak diperiksa.

Saya telah membaca Tidak dapat menemukan berkas deklarasi untuk modul 'module-name'. '/path/to/module-name.js' secara implisit memiliki tipe 'any' tetapi ini tidak menyebutkan impor relatif.

Saya mencoba Tidak dapat menemukan file deklarasi dengan file deklarasi kustom untuk modul 'react-dates' tetapi itu tidak membantu.

Bagaimana saya bisa membuat TypeScript mendeteksi file handler.d.ts di direktori typeRoots?

Artikel terkait