我目前正在学习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()
函数吗?我错过了什么?
答案 0 :(得分:1)
在你的tsconfig.json
中,你有这样的行
"module": "es2015",
"moduleResolution": "node",
这就是你的打字稿生成这样一个代码的原因。如果要更改目标模块系统,则必须更改配置。