我将TypeScript与Express
/一起使用Node.js
。
对于使用模块,《 TypeScript手册》显示以下语法:
import express = require('express');
而且typescript.d.ts
html" target="_blank">文件显示:
import * as express from "express";
我还搜索了MSDN博客,但找不到任何东西。
截至2016年初,哪个更正确?两者之间有什么区别(如果有)?
在哪里可以找到有关要使用的最新语法的信息的最佳来源,以便将来我可以找到此信息?
这些大多是等效的,但import *
有一些限制import ... = require
不是。
import * as
创建一个标识符,它是一个 模块对象 ,重点是 对象 。根据ES6规范,此对象永远不可调用或new
不能执行-
它仅具有属性。如果您要导入函数或类,则应使用
import express = require('express');
或(取决于您的模块加载器)
import express from 'express';
根据ES6规范,尝试使用import * as express
然后再调用express()
始终是非法的。在某些运行时+转换环境中,这可能仍然会发生,但将来可能会在没有警告的情况下中断,这会让您感到悲伤。
问题内容: 我在这里找到了解决方案:Webpack和Typescript图像导入 但我为此得到错误: 我想我需要以某种方式强制导入,但无法弄清楚如何。我在React中做到这一点。我看到该属性定义为,这就是为什么会弹出错误。 这是代码: HTML: 并基于上述解决方案进行定义: tsconfig: 问题答案: 摆脱该错误的一种方法是通过按如下方式修改d.ts文件: 去掉 或者您可以执行以下操作: 更
我正在使用ES6导入语法并导入一个第三方ES5模块,该模块导出一个未命名函数的单个导出: 因为没有默认导出,而是一个匿名函数输出,我必须像这样导入和使用: 这会产生Typescript错误: 错误TS2349:无法调用其类型缺少调用签名的表达式。类型“typeof”没有兼容的调用签名。 我想我之所以会这样是因为我没有正确键入ES5导入(没有公共键入文件)。当我认为该函数是默认导出时,我有以下定义:
问题内容: 我很难尝试导入lodash模块。我已经使用npm + gulp设置了我的项目,并不断碰壁。我尝试过常规lodash,但也尝试过lodash-es。 lodash npm软件包:(在软件包根文件夹中有一个index.js文件) 结果是: lodash-es npm软件包:(在package根文件夹的lodash.js中具有默认输出) 结果是: gulp任务和webstorm都报告相同的问
您可以使用 “打开 ”命令、 “置入 ”命令、 “粘贴 ”命令和拖放功能将图稿从 Photoshop (PSD) 文件引入到 Illustrator 中。 Illustrator 支持大部分 Photoshop 数据,包括图层复合、图层、可编辑文本和路径。这意味着可在 Photoshop 和 Illustrator 间传输文件,而不失去编辑图稿的功能。为了能够在两个应用程序之间轻松传输文件,已关闭
问题内容: 在我的react和typescript应用程序中,我使用:。 我如何正确定义类的类型,这样我就不必用来绕过类型系统了? 如果我把我得到: 问题答案: 通常,事件处理程序应使用,例如: 您可以在这里阅读原因(还原“使SyntheticEvent.target通用,而不是SyntheticEvent.currentTarget。”)。 UPD:如@ roger-gusmao所述,它更适合于
问题内容: 只是想知道我们如何在node.js 8中导入模块-我们仍在使用吗? 还是我们仍然需要babel来使用? 我一直在挖掘,但似乎没有答案。如果我们仍然必须使用require,为什么节点还不能实现? 问题答案: UPDATE-2018.11.15↓ 简短答案 我们仍在使用 长答案 ESM加载已部分降落在2017年9月发布的node 上。正因为如此,它已经成为规范的一部分,并且已经作为实验功能