我正在使用带有 Express/Node.js 的 TypeScript。
对于使用模块,TypeScript 手册显示以下语法:
import express = require('express');
而且 typescript.d.ts
文件也显示:
import * as express from "express";
我也搜索了 MSDN 博客,但没有找到任何东西。
截至 2016 年初,哪一个更正确?如果有的话,两者有什么区别?
在哪里可以找到有关要使用的最新语法的信息的最佳来源,以便我以后可以找到这些信息?
最佳答案
这些大多是等效的,但是 import *
有一些限制 import ... = require
没有。
import * as
创建一个标识符,它是一个模块对象,强调object。根据 ES6 规范,这个对象永远不可调用或 new
able - 它只有属性。如果你想导入一个函数或类,你应该使用
import express = require('express');
或(取决于您的模块加载器)
import express from 'express';
根据 ES6 规范,尝试使用 import * as express
然后调用 express()
始终是非法的。在某些运行时+转译环境中,这可能会发生,但它可能会在未来的任何时候中断而不会发出警告,这会让您感到难过。
关于javascript - TypeScript import/as vs import/require?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35706164/