Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

234
Visualizações
Pasar opciones a las importaciones de módulos ES6

¿Es posible pasar opciones a las importaciones de ES6?

Cómo traduces esto:

 var x = require('module')(someoptions);

a ES6?

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

No hay forma de hacer esto con una sola declaración de import , no permite invocaciones.

Por lo tanto, no lo llamaría directamente, pero básicamente puede hacer lo mismo que hace commonjs con las exportaciones predeterminadas:

 // module.js export default function(options) { return { // actual module } } // main.js import m from 'module'; var x = m(someoptions);

Alternativamente, si usa un cargador de módulos que admita promesas monádicas , es posible que pueda hacer algo como

 System.import('module').ap(someoptions).then(function(x) { … });

Con el nuevo operador de import podría convertirse

 const promise = import('module').then(m => m(someoptions));

o

 const x = (await import('module'))(someoptions)

sin embargo, probablemente no desee una importación dinámica sino estática.

over 4 years ago · Santiago Trujillo Relatório

0

Concepto

Aquí está mi solución usando ES6

Muy en línea con la respuesta de @Bergi, esta es la "plantilla" que uso al crear importaciones que necesitan que se pasen parámetros para las declaraciones de class . Esto se usa en un marco isomorfo que estoy escribiendo, por lo que funcionará con un transpilador en el navegador y en node.js (uso Babel con Webpack ):

./MiClase.js

 export default (Param1, Param2) => class MyClass { constructor(){ console.log( Param1 ); } }

./main.js

 import MyClassFactory from './MyClass.js'; let MyClass = MyClassFactory('foo', 'bar'); let myInstance = new MyClass();

Lo anterior generará foo en una consola.

EDITAR

Ejemplo del mundo real

Para un ejemplo del mundo real, estoy usando esto para pasar un espacio de nombres para acceder a otras clases e instancias dentro de un marco. Debido a que simplemente estamos creando una función y pasando el objeto como un argumento, podemos usarlo con nuestra declaración de clase así:

 export default (UIFramework) => class MyView extends UIFramework.Type.View { getModels() { // ... UIFramework.Models.getModelsForView( this._models ); // ... } }

La importación es un poco más complicada y automagical en mi caso dado que es un marco completo, pero esencialmente esto es lo que está sucediendo:

 // ... getView( viewName ){ //... const ViewFactory = require(viewFileLoc); const View = ViewFactory(this); return new View(); } // ...

¡Espero que esto ayude!

over 4 years ago · Santiago Trujillo Relatório

0

Basándose en la respuesta de @Bergi para usar el módulo de depuración usando es6 sería lo siguiente

 // original var debug = require('debug')('http'); // ES6 import * as Debug from 'debug'; const debug = Debug('http'); // Use in your code as normal debug('Hello World!');
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda