Pesquisa de site

typescript1.8 - Opções de Compilação do TypeScript: module vs target


Tentando ter algum entendimento básico sobre módulo e alvo.

Eu gostaria de saber a diferença entre as opções de compilação module e target em um tsconfig.json típico

{
    "compilerOptions": {
        "module": "es6",
        "sourceMap": true,
        "target": "es6"
    }
}

O que acontece se eu fornecer as seguintes opções:

módulo: commonjs, alvo: es6

módulo: es6, alvo: commonjs

módulo: commonjs, alvo: commonjs

Resposta #1

Existem 2 coisas diferentes. --target simplesmente significa qual versão do ECMAScript você está usando para codificar. --module simplesmente significa qual sistema de módulos você está usando, como commonjs para Node ou módulo ES para todos os que o suportam e assim por diante.

Resposta #2

Uma explicação mais detalhada está aqui: Entendendo "target" e "module" no tsconfig

Veja também: Entendendo "target" e "module" no tsconfig.

Aqui está uma citação da documentação sobre opções de compilador:

--alvo

Especifique a versão alvo do ECMAScript: 'es3' (padrão), 'es5' ou 'es6'.

--módulo

Especifique a geração de código do módulo: 'none', 'commonjs', 'amd', 'system', 'umd', 'es6' ou 'es2015'.

  • Apenas 'amd' e 'system' podem ser usados em conjunto com --outFile.
  • Os valores 'es6' e 'es2015' podem ser usados ao direcionar ES5 ou inferior.

Resposta #3

A propriedade "target" é usada para especificar a versão do JavaScript em que seu código TypeScript será eventualmente compilado. A propriedade "module" especifica o tipo de sintaxe de módulo que seu código compilado (TS-->JS) usará. Por exemplo, se você definir a propriedade module como "commonJS", seu código compilado usará "require/module.exports" para importar/exportar. No entanto, a propriedade module não afetará o restante do código compilado. Para maior clareza, consulte esta resposta: https://stackoverflow.com/a/61215252/8659116

Artigos relacionados