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 : -
constes nuevo en ES5. Antes tenías que crearlo explícitamente o usando iffy.importes nuevo en ES6, que es solo un reemplazo derequire(que dependía del módulo common js).Exporttambién es una característica de ES6, que te permite usar elmoduleoobject/varen 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.
