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.fooEsto importa la exportación predeterminada .
// mathgrab lib export const someObject = { foo: 'foo' } // your code import { someObject } from 'mathgraph'; someObject.fooEsto 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.barIncluso 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.