O erro Cannot use import statement outside a module no TypeScript geralmente ocorre quando você tenta usar a sintaxe import em um ambiente que não foi configurado para usar módulos ES (ECMAScript). Aqui estão algumas etapas que você pode seguir para resolver esse problema:
- Atualizar tsconfig.json
Certifique-se de que seu tsconfig.json está configurado para usar módulos ES. Você pode fazer isso ajustando a propriedade module para ESNext ou ES6:
{
"compilerOptions": {
"module": "ESNext",
"target": "ES6",
// outras opções...
}
}
- Atualizar package.json
Garanta que seu package.json inclua "type": "module" para indicar que você está usando módulos ES:
{
"type": "module"
}
- Verificar Extensões de Arquivo
Se você estiver usando a extensão .ts, ela deve funcionar corretamente com as configurações acima. No entanto, se você tiver arquivos .js, considere renomeá-los para .mjs se não quiser alterar as configurações de package.json.
Exemplo de Configuração Completa
Atualizar package.json:
{
"name": "meu-projeto",
"version": "1.0.0",
"type": "module",
"scripts": {
"start": "node dist/index.js"
}
}
Atualizar tsconfig.json:
{
"compilerOptions": {
"module": "ESNext",
"target": "ES6",
"outDir": "./dist",
"rootDir": "./src",
// outras opções...
},
"include": ["src/**/*"]
}
Estrutura de Arquivos:
- src/index.ts
- src/myModule.ts
Código de Exemplo:
// src/myModule.ts
export function myFunction() {
console.log("Hello from myModule!");
}
// src/index.ts
import { myFunction } from './myModule.js';
myFunction();
Compilar e Rodar
Compile seu projeto com tsc (TypeScript Compiler) e execute o código:
bash
tsc
npm start