1
resposta

Por que a import no JS tem esse formato contra intuitivo?

Sei que minha duvida é boba, mas pensando na interpretação de código sempre achei contra intuito fazer um import ante do from. Por exemplo:

import {Cliente} from "./Cliente.js"

Escrever essa linha é esquisito pois eu tenho que saber o que quero suar de um módulo antes de falar qual módulo é. Pensando em devs que já sabem o que tem disponível, até entendo, mas quando considero que é bem comum os dev usarem o "ctrl espaço" para descobrir o que tanto podem utilizar daquele módulo ou classe, me parece que o interpretador poderia trabalhar com um formato mais "literal".

from "./Cliente.js" import {Cliente} 

Nesse formato as IDEs teriam como dado o módulo que informei mostrar o que tenho ali para usar.

É uma dúvida mais conceitual da linguagem em si. Apesar que esse comportamento me lembra SQL onde vc fala o que quer selecionar e depois fala de onde (aqui poderia ser invertido também rs).

1 resposta

Carlos,

o FROM não é exclusivo do IMPORT.

Pensando nisso, é mais fácil para quem vai dar manutenção ou auditar seu código encontrar um IMPORT já no começo da linha.

E você também tem outras sintaxes de IMPORT (as duas últimas da relação não usam o FROM):

import defaultExport from "module-name";
import * as name from "module-name";
import { export1 } from "module-name";
import { export1 as alias1 } from "module-name";
import { export1 , export2 } from "module-name";
import { foo , bar } from "module-name/path/to/specific/un-exported/file";
import { export1 , export2 as alias2 , [...] } from "module-name";
import defaultExport, { export1 [ , [...] ] } from "module-name";
import defaultExport, * as name from "module-name";
import "module-name";
var promise = import("module-name");

Aqui você pode ver usos de EXPORT com FROM:

// Aggregating modules
export * from …; // does not set the default export
export * as name1 from …; // Draft ECMAScript® 2O21
export { name1, name2, …, nameN } from …;
export { import1 as name1, import2 as name2, …, nameN } from …;
export { default } from …;

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software