He identificado las siguientes declaraciones de importación en node . ¿Todas las declaraciones a continuación importan mathgraph
con un ámbito de espacio de nombres diferente, o qué estilos de importación son idénticos?
const/var/let mathgraph = require('mathgraph'); import * as mathgraph from 'mathgraph'; import mathgraph from 'mathgraph'; import { mathgraph } from 'mathgraph'; import mathgraph = require('mathgraph');
// mathgrab lib export default { foo: 'foo' } // your code import mathgraph from 'mathgraph'; mathgrab.foo
Esto importa la exportación predeterminada .
// mathgrab lib export const someObject = { foo: 'foo' } // your code import { someObject } from 'mathgraph'; someObject.foo
Esto importa una exportación con nombre .
// mathgrab lib export const someObject = { foo: 'foo' } export default { bar: 'bar' } // your code import mathgraph, { someObject } from 'mathgraph'; mathgrab.someObject.foo mathgrab.default.bar
Incluso puede combinar estos dos para importar ambos tipos de exportaciones en una sola línea.
// mathgrab lib export const someObject = { foo: 'foo' } export default { bar: 'bar' } // your code import * as mathgraph from 'mathgraph'; mathgrab.someObject.foo mathgrab.default.bar
Esto importa todas las exportaciones como un solo objeto. La exportación default
estará en la propiedad default
de este objeto.
const mathgraph = require('mathgraph');
Esto solo funciona en el nodo y es funcionalmente lo mismo que import *
, pero es un requisito de tiempo de ejecución dinámico, en lugar de una importación de tiempo de compilación. Eso significa que TypeScript no puede usar los tipos del archivo importado. require
es solo una función, por lo que devuelve un valor de tipo any
, por lo que se pierde toda la información de escritura.
No use require
con mecanografiado, siempre querrá usar import
en su lugar.
import mathgraph = require('mathgraph');
Y, por último, esta es una sintaxis no válida. Así que no hagas eso.