Búsqueda de sitios web

node.js - ¿Por qué hay tantos tipos de importación/exportación en Javascript/Typescript?


Soy un principiante en JavaScript del lado del servidor, he usado Node.js antes para cosas simples, pero solo las librerías por defecto (donde nunca necesito usar las palabras clave require o import), pero últimamente estoy aprendiendo ReactNative/ReactXP y he visto:

import RX = require('reactxp');
const popsicle = require('popsicle');
import LoginPage = require("./LoginPage");
import React, { Component } from 'react';
import { AppRegistry, Text } from 'react-native';
import AppState from './AppState';

Y exportaciones:

export default Resources; // Resources is an object
export = LoginPage; // LoginPage is a class

La pregunta es, ¿cuál es la diferencia entre la combinación de const-require, import-require y import-from? también, ¿qué es export=? parece que no está en la documentación de Mozilla.

Respuesta #1

import RX = require('reactxp');
import LoginPage = require("./LoginPage");
export = LoginPage; // LoginPage is a class

Estos 3 son sintaxis de importación/exportación de módulos de TypeScript.

const popsicle = require('popsicle');

Este es el módulo de Node.js require.

El resto

import React, { Component } from 'react';
import { AppRegistry, Text } from 'react-native';
import AppState from './AppState';
export default Resources; // Resources is an object

son módulos ES2015 (import export).

No es que puedas compararlos: simplemente son importación/exportación para diferentes entornos.

Respuesta #2

Básicamente no son diferencias : -

  1. const es nuevo en ES5. Antes tenías que crearlo explícitamente o usando iffy.
  2. import es nuevo en ES6, que es solo un reemplazo de require (que dependía del módulo common js).
  3. Export también es una característica de ES6, que te permite usar el module o object/var en otro archivo.

Entonces, es solo la nueva convención y nada más. Y ahora por defecto en Javascript después de ES6.

Además, {} te permite exponer directamente los módulos/propiedades del objeto. También es una nueva característica en ES6. Por ejemplo: -

Supongamos que tienes un objeto y en el archivo obj.js:

 export let objj1 = {
    a : function () {},
    b : function () {},
 }

Así que básicamente hay dos formas de usar eso 1.

let obj=require('obj');

a = obj.a or b = obj.b;

O

import {a, b} desde 'obj'

Así que ahora puedes acceder directamente a las propiedades a y b.

Artículos relacionados