首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Typescript import/as vs import/require?

Typescript import/as vs import/require?
EN

Stack Overflow用户
提问于 2016-03-01 01:53:00
回答 2查看 135.8K关注 0票数 117

我正在使用带有Express/Node.js的TypeScript。

对于使用模块,TypeScript手册显示了以下语法:

import express = require('express');

而且typescript.d.ts文件还显示:

import * as express from "express";

我也搜索了MSDN博客,但什么也找不到。

截至2016年初,哪一个更正确?这两者之间有什么区别吗?

哪里是查找最新语法信息的最佳来源,这样我将来就可以找到这些信息?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-01 01:58:08

它们基本上是等价的,但是import *有一些import ... = require没有的限制。

import * as创建了一个标识符,它是一个模块对象,重点是object。根据ES6规范,这个对象永远不是callable或new可调用的--它只有属性。如果您正在尝试导入函数或类,则应使用

代码语言:javascript
复制
import express = require('express');

或者(取决于您的模块加载器)

代码语言:javascript
复制
import express from 'express';

根据ES6规范,尝试使用import * as express然后调用express()始终是非法的。在一些runtime+transpilation环境中,这可能会发生,但它可能会在未来的任何时候中断,而不会发出警告,这将使您感到悲伤。

票数 172
EN

Stack Overflow用户

发布于 2016-03-01 02:06:57

代码语言:javascript
复制
import * as express from "express";

这是推荐的方式,因为这是自去年以来JavaScript (ES6/2015)的标准。

在任何情况下,在您的tsconfig.json文件中,您应该将模块选项指定为commonjs,这是nodejs支持的格式。

票数 28
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35706164

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档