Saya tidak dapat menemukan definisi TypeScript @type/{name}
untuk salah satu paket NodeJS saya yang terinstal, jadi saya mencoba menulis d.ts
file untuknya, dan meletakkan file tersebut di {project root}\typings
folder. Inilah cara saya melakukannya:
// My source code: index.ts
import Helper from 'node-helper-lib';
// My definition: \typings\node-helper-lib.d.ts
declare....(something else)
declare module 'node-helper-lib' {
class Helper { ... }
export = Helper;
}
Namun, kode Visual Studio terus menghasilkan kesalahan ini dan menempatkan garis merah di bawah declare module 'node-helper-lib'
:
[ts] Nama modul tidak valid dalam augmentasi. Modul 'node-helper-lib' menyelesaikan modul tanpa tipe di '{project path} \ node_modules \ node-helper-lib \ index.js', yang tidak dapat ditambah.
Bukankah sah karena perpustakaan tidak memiliki tipe, jadi saya harus diizinkan untuk menambahkan pengetikan ke dalamnya?
MEMPERBARUI:
Saya menggunakan:
- TypeScript: 2.1.4
- Kode Visual Studio: 1.9.1
- Node JS: 6.9.4
- Windows 10 x64
sumber
supertest
- Keluhan TypeScript bahkan tidak masuk akal, bagaimana saya tidak menambahkan sesuatu yang bahkan tidak memiliki deklarasi? Saya pikir saya telah menulis file definisi khusus seperti ini berkali-kali ...[ts] Invalid module name in augmentation. Module 'supertest' resolves to an untyped module at '/home/chase/Desktop/projects/formuoli/node_modules/supertest/index.js', which cannot be augmented.
- sayangnya@types/supertest
rusak dengan menyertakan pustaka DOM yang membuatnya rusak .. sepertinya saya kurang beruntung.d.ts
, mungkin Anda harus memindahkan semua impor ke dalam modul deklarasi "moduleName" {}.import
panggilan harus masuk ke dalamdeclare module 'module' {}
scope. kesalahan itu menyesatkan paling-palingimport
pernyataan yang diperlukan oleh modul Anda di luardeclare module
bukan di dalamnya. Perilaku aneh yang tidak intuitif (maaf telah mengomel di sini).Saya mendapatkan pesan kesalahan itu juga. Masalah bagi saya adalah bahwa saya mencoba mendeklarasikan modul lain dalam file definisi tipe yang sudah ada yang memiliki deklarasi modul di dalamnya. Setelah saya memindahkan deklarasi modul baru ke file baru, kesalahannya hilang.
sumber
Dalam kasus saya, saya hanya menggunakan deklarasi berikut di salah satu file tipe saya sehingga saya dapat menggunakan semua paket non-skrip:
declare module '*'
sumber