【发布时间】:2017-08-10 11:28:20
【问题描述】:
我目前正在学习 javascript 开发 - typescript、node.js 和 express。有一点不明白:
Typescript 是 javascript 超集,它应该从 typescript 语法生成经典的 javascript 代码,对吧? app.ts 文件中的 node.js 项目中有此代码用于导入模块:
import * as express from 'express';
使用此代码生成app.js 文件:
Object.defineProperty(exports, "__esModule", { value: true });
// Include dependencies
var express = require("express");
AFAIK require() 函数不是“经典”javascript 函数,但它是用于导入模块的 Node.js 函数。这是我不明白的:
为什么 TS 不生成纯 javascript 代码而是生成 node.js 函数?
如果我将 typescript 用于非 node.js 项目怎么办?打字稿会生成一个不存在的require() 函数吗?我错过了什么?
【问题讨论】:
-
require不纯的 JavaScript 怎么样? -
在某处我读到
require()仅受当前使用的设备和浏览器尚未广泛支持的最新版本的 ECMAscript 支持。 -
这不是真的。
require是 CommonJS 的一部分,NodeJS 实现了 CommonJS。你告诉 TypeScript 编译成 CommonJS,所以它会给你 CommonJS 代码。 -
哦,好的。但是,您所说的“不正确”具体是什么意思?
require()不是/不会是最新 JS 版本的原生函数? -
我的意思是
require不是 ECMAScript 的一部分,并且可能永远不会被任何浏览器支持。
标签: javascript node.js typescript module