Qual a diferença entre os códigos abaixo? Quais os impactos de ter chaves ou não? Obrigado!
import { depositar } from "./saldo.js";
depositar(1000);
import depositar from "./saldo.js";
depositar(1000);
Qual a diferença entre os códigos abaixo? Quais os impactos de ter chaves ou não? Obrigado!
import { depositar } from "./saldo.js";
depositar(1000);
import depositar from "./saldo.js";
depositar(1000);
Olá, Thiago, como vai?
Quando você usa import { depositar } from "./saldo.js";
, significa que depositar foi exportado como um export nomeado. Isso permite que o arquivo exporte múltiplas funções ou variáveis, e você deve importar exatamente com o mesmo nome definido na exportação. Exemplo:
// saldo.js
export function depositar(valor) { ... }
// outro arquivo
import { depositar } from "./saldo.js";
depositar(1000);
Já import depositar from "./saldo.js";
indica que depositar foi exportado como um export default, ou seja, é a principal exportação do módulo e pode ser importada com qualquer nome. Exemplo:
// saldo.js
export default function depositar(valor) { ... }
// outro arquivo
import depositar from "./saldo.js";
depositar(1000);
O impacto disso é que com exports nomeados, você pode exportar várias funções do mesmo arquivo, enquanto com export default, o módulo tem uma única exportação principal. Se saldo.js tiver sido exportado com export default, o primeiro código geraria um erro, pois tentaria importar algo que não foi exportado dessa forma.
Espero ter ajudado!
Siga firme nos seus estudos e conte com o fórum sempre que precisar.
Abraços :)