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
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?