traductor online not found error entry convertir javascript typescript ecmascript-6 node-modules ts-loader

javascript - online - typescript loader webpack 4



¿Cómo incluir módulos de nodo sin tipo con Typescript 1.8? (1)

Typescript 1.8 ahora admite archivos JS sin tipo. Para habilitar esta característica, simplemente agregue el indicador del compilador --permiteJJ o agregue "allowJs": verdadero a compilerOptions en tsconfig.json

a través de https://blogs.msdn.microsoft.com/typescript/2016/01/28/announcing-typescript-1-8-beta/

Estoy intentando importar el complemento react-tap-event-plugin que no tiene un archivo typings.

import * as injectTapEventPlugin from ''injectTapEventPlugin'';

dice módulo no encontrado. Así que lo intenté:

import * as injectTapEventPlugin from ''../node_modules/react-tap-event-plugin/src/injectTapEventPlugin.js'';

Esto dice que el Módulo se resuelve en una entidad que no es un módulo y no se puede importar utilizando esta construcción. Y luego intenté:

import injectTapEventPlugin = require(''../node_modules/react-tap-event-plugin/src/injectTapEventPlugin.js'');

Se está bloqueando con ERROR in ./scripts/index.tsx Module build failed: TypeError: Cannot read property ''kind'' of undefined en node_modules/typescript/lib/typescript.js:39567

Mi tsconfig:

{ "compilerOptions": { "target": "ES5", "removeComments": true, "jsx": "react", "module": "commonjs", "sourceMap": true, "allowJs": true }, "exclude": [ "node_modules" ] }

Estoy usando un paquete web con ts-loader:

{ test: //.tsx?$/, exclude: [''node_modules'', ''tests''], loader: ''ts-loader'' }


La nueva característica --allowJs no significa que se generarán tipings para ti, por lo que no puedes hacer

import {SomeModule} from ''something'';

donde ''algo'' es un archivo JS simple: debe importarlo usando la sintaxis JS simple, por ej.

var someModule = require(''something'');

Si no tiene un archivo .d.ts para la importación, no podrá usar ningún tipo de anotación, por ejemplo

let x: someModule

será inválido Si desea escribir anotaciones, intellisense y cualquier otra característica de TypeScript para la importación, deberá crear un archivo .d.ts o crear sus propias interfaces para los bits que necesita.

Al leer la documentación, parece que esta característica es principalmente para las personas que realizan conversiones de .js a .ts para poder reescribir incrementalmente sus archivos .js. Además, se usa para agrupar sus externos con su propio código, y le ahorra tener que agrupar / concatenar archivos usando una herramienta como paquete web o browserify.