【发布时间】:2016-07-22 11:38:25
【问题描述】:
我将 TypeScript 转换为 ES2015(因为我需要 async,await),然后将 ES2015 转换为 Node4 支持的 ES2015(Node4 与 ES2015 不完全兼容)。
问题是 express 的 TypeScript 定义不包含 default 字段。但是这个字段实际上存在于 Javascript 代码中。 (实际上express 只是示例,许多其他库中存在问题bluebird 例如)
所以,如果我导入 import {default as express} from "express";,那么我有编译 TypeScript 错误。如果我导入为import * as express from "express";,则在运行时执行express(); 时会出现错误,如express is not a functionin runtime。
简单项目是here。
你需要在控制台输入:
npm install
typings install
gulp clean,build
gulp run
看看我的意思。 (应安装 npm、typescript、gulp)
如何正确将 TypeScript 转换为 Node4 支持的 ES2015
【问题讨论】:
-
@estus 但是在打字稿中使用
require时会丢失打字稿编译类型检查吗? -
@estus 我认为
require用于导入没有类型定义的 JavaScript,然后在 typescript 中没有类型检查。 -
但是您在 Node 模块中没有任何类型定义,是吗?
-
我想你可能想要--allowSyntheticDefaultImports?
-
import express from "express";是导入这个的正确方法,你说那给你一个打字稿错误。
标签: javascript node.js typescript ecmascript-6