Não consigo encontrar a definição do TypeScript @type/{name}
para um dos meus pacotes NodeJS instalados, então tento escrever um d.ts
arquivo para ele e coloco o arquivo na {project root}\typings
pasta. É assim que eu faço:
// 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;
}
No entanto, o Visual Studio Code continua gerando esse erro e coloca uma linha vermelha abaixo de declare module 'node-helper-lib'
:
[ts] Nome de módulo inválido em aumento. O módulo 'node-helper-lib' é resolvido para um módulo não tipado em '{caminho do projeto} \ node_modules \ node-helper-lib \ index.js', que não pode ser aumentado.
Não é legítimo que, como a biblioteca não foi digitada, eu deveria ter permissão para adicionar digitação a ela?
ATUALIZAR:
Estou usando:
- TypeScript: 2.1.4
- Código do Visual Studio: 1.9.1
- Nó JS: 6.9.4
- Windows 10 x64
fonte
supertest
- a reclamação do TypeScript nem mesmo faz sentido, como posso não aumentar algo que nem mesmo tem uma declaração? Eu pensei que já escrevi arquivos de definição personalizados como este muitas vezes ...[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.
- infelizmente@types/supertest
está quebrado ao incluir bibliotecas DOM que o renderizam .. parece que estou sem sorte.d.ts
, talvez você deva apenas mover todas as importações para o módulo de declaração "moduleName" {}.import
chamadas devem entrar nodeclare module 'module' {}
escopo. o erro é enganoso na melhor das hipótesesimport
instruções exigidas por seu módulo fora do emdeclare module
vez de dentro dele. Comportamento estranho tão pouco intuitivo (desculpe por reclamar aqui).Eu estava recebendo aquela mensagem de erro também. O problema para mim era que eu estava tentando declarar outro módulo em um arquivo de definição de tipo existente que continha uma declaração de módulo. Depois de mover a declaração do novo módulo para um novo arquivo, o erro foi embora.
fonte
No meu caso, eu apenas usei a seguinte declaração em um dos meus arquivos de tipos, então fui capaz de usar todos os pacotes não-typescript:
declare module '*'
fonte