No puedo encontrar la definición de TypeScript @type/{name}para uno de mis paquetes NodeJS instalados, así que intento escribir un d.tsarchivo para él y poner el archivo en la {project root}\typingscarpeta. Así es como lo hago:
// 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;
}
Sin embargo, Visual Studio Code sigue produciendo este error y pone una línea roja debajo declare module 'node-helper-lib':
[ts] Nombre de módulo no válido en aumento. El módulo 'node-helper-lib' se resuelve en un módulo sin tipo en '{ruta del proyecto} \ node_modules \ node-helper-lib \ index.js', que no se puede aumentar.
¿No es legítimo que debido a que la biblioteca no está mecanografiada, se me debería permitir agregar escritura?
ACTUALIZAR:
Estoy usando:
- TypeScript: 2.1.4
- Código de Visual Studio: 1.9.1
- Nodo JS: 6.9.4
- Windows 10 x64
fuente

Después de algunos intentos y errores, descubrí que eso
augmentationsignifica "declarar un módulo en el mismo archivo con otra declaración de módulo".Por lo tanto, si queremos escribir un archivo de definición de un tipo asignado biblioteca de JavaScript 3 ª parte, hay que tener sólo una
declare module 'lib-name'en ese archivo, y 'lib-nombre' debe coincidir exactamente con el nombre de la biblioteca (se puede encontrar en su package.json " nombre "propiedad).Por otro lado, si una biblioteca de terceros ya tiene un archivo de definición
.d.tsincluido y queremos ampliar sus funcionalidades, entonces podemos poner la definición adicional en otro archivo que creamos. A esto se le llamaaugmenting.Por ejemplo:
// These module declarations are in same file, given that each of them already has their own definition file. declare module 'events' { // Extended functionality } declare module 'querystring' { // Extended functionality } declare module '...' { ... }Dejo mi descubrimiento aquí por si alguien tiene la misma pregunta. Y corrígeme si me perdí algo.
fuente
supertestla queja de TypeScript ni siquiera tiene sentido, ¿cómo no puedo aumentar algo que ni siquiera tiene una declaración? Pensé que había escrito archivos de definición personalizados como este muchas veces ...[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.- desafortunadamente@types/supertestse rompe al incluir bibliotecas DOM que lo hacen roto ... parece que no tengo suerte.d.ts, tal vez debería mover toda la importación al módulo de declaración "moduleName" {}.importllamadas deben entrar dentro deldeclare module 'module' {}alcance. el error es engañoso en el mejor de los casosimportdeclaraciones requeridas por su módulo fuera del endeclare modulelugar de dentro. Un comportamiento extraño tan poco intuitivo (lo siento por despotricar aquí).También recibía ese mensaje de error. El problema para mí fue que estaba tratando de declarar otro módulo en un archivo de definición de tipo existente que tenía una declaración de módulo. Después de mover la declaración del nuevo módulo a un nuevo archivo, el error desapareció.
fuente
En mi caso, solo usé la siguiente declaración en uno de mis archivos de tipos, por lo que pude usar todos los paquetes no mecanografiados:
declare module '*'fuente