node.js - ejecutar - tslint rules
¿Explicación adecuada para NodeJS/Typescript Export/Import? (1)
De acuerdo, la sintaxis de importación / exportación es confusa por al menos dos razones:
- la sintaxis de commonjs:
var module = require ("module");
Funciona pero eso es commonjs -> sin mecanografía - cambió: la
import x = require(''y''
sintaxisimport x = require(''y''
) ahora está en desuso en TS
TL; DR; : Utilice la sintaxis ''estilo es6'' introducida en TS 1.5
El "mejor" recurso de importación / exportación en TS que conozco es this
En general, recomiendo leer este excelente manual que proporcionará respuestas a la mayoría de sus preguntas.
Importar
De una exportación por defecto
Something
se exportó como una exportación predeterminada (única), es decir, la export default Something
en ts / es6
Utilizar
import Something from "module"
Puede importar una exportación predeterminada con un nombre diferente. import SomethingElse from ''module''
también funcionará
De las exportaciones con nombre
Something
se exportó como una exportación con nombre en "módulo" usando export {Something}
o export class|interface Something{}
en ts / es6
Quieres importar solo eso, usa
import {Something} from "module"
Desea importar todo lo que se exporta desde "módulo" bajo el mod
espacio de nombres
import * as mod from "module
Luego usa const c:mod.Something = whatever
Exportar
Ver import
s arriba
La export = something
formulario export = something
está en desuso en favor de la nueva sintaxis de estilo ES6. Se encuentra principalmente en los archivos de definición para expresar el hecho de que una biblioteca js exporta una sola función / objeto, por ejemplo, module.exports=something
.
Lo que deberías intentar usar
Use la sintaxis de estilo ES6 y evite las exportaciones default
: tienen la ventaja de que se pueden importar con un nombre diferente, pero
- una importación predeterminada no se puede volver a exportar, lo que puede ser problemático si está escribiendo una biblioteca
- confundirán una gran cantidad de IDE (por no mencionar usted mismo) al refactorizar
- una exportación nombrada en realidad puede ser renombrada localmente cuando se importa, es decir,
import {Something as SomethingElse} from "module"
Concretamente, exporte lo que necesite exportar e importe específicamente
En api.ts
export interface MyInterface {
}
export class MyClass {
}
En main.ts
import {MyInterface, MyClass} from ''./api''
Linting
Hay muchos IDE buenos por ahí que brindan una excelente formación de líneas: VSCode, Atom Typescript y Webstorm para nombrar unos pocos populares, los primeros dos son gratuitos y el tercero incluso administra las importaciones por ti.
¿Podría alguien explicar exactamente cómo funcionan las exportaciones e importaciones en NodeJS usando Typescript?
Mi configuración es:
- NodeJS
- Todo en mecanografiado
- TSLint
- Mecanografía
Estoy jugando con las exportaciones / importaciones en lugar de hacer una codificación adecuada, me está volviendo loco, y no puedo encontrar ninguna explicación adecuada de cómo funciona.
Importar
¿Puede por favor explicar lo siguiente?
var module = require ("module");
import module = require("module");
import module from "module";
import {something} from "module";
import * as module from "module";
Exportar
¿Puedes por favor explicar lo siguiente?
export = something;
export default something;
export interface|class something;
Preguntas
- Cómo exportar / importar una clase correctamente sin iniciarla
- Cómo exportar / importar correctamente una clase cuando se inicia (la construcción se ejecutó)
- ¿Cómo puedo exportar / importar una clase y una interfaz correctamente?
- ¿Cómo puedo exportar / importar correctamente la clase y múltiples interfaces
- Cuándo usar las declaraciones de los módulos, para qué sirven y por qué tslint me arroja errores si trato de usarlos.
Parece que no puedo encontrar la forma adecuada de hacer exportaciones frente a importaciones, por lo que mi IDE no está cubierto de rojo y me lanza cientos de errores.
Preguntas generales
- ¿Hay incluso una manera de no obtener errores usando nodejs / typescript / tslint?
- TSLint me grita por casi todo lo que escribo ... es extremadamente frustrante, ya que la mayoría de los errores tienen una explicación 0. ¿Vale la pena usarlo?
La lista de preguntas sigue y sigue, pero estoy seguro de que una vez que se responda algo de lo anterior, puedo continuar con el resto.
Gracias y lo siento por una pregunta tan general, pero mi nivel de frustración acaba de llegar a la cima ...