首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在无模块环境下使用无强名称TypeScript定义文件

如何在无模块环境下使用无强名称TypeScript定义文件
EN

Stack Overflow用户
提问于 2016-03-31 17:53:09
回答 1查看 82关注 0票数 0

我使用的是Visual Studio 2013/TypeScript 1.8.5/NPM/Typings。

我想用一些React JSX把TypeScript编译成ES5代码,更重要的是,不用模块。

一些定义文件的类型只有一个名为module的字符串。通过“字符串命名”,我的意思是这样:

代码语言:javascript
复制
declare module "redux-devtools" {}

当其他人有这样的问题时:

代码语言:javascript
复制
declare namespace Redux {}
declare module "redux" {}

当有我所谓的“强名称”时,我可以直接在我的代码中使用这些定义。

代码语言:javascript
复制
var foobar = Redux;

但是当只有一个名为module的字符串时,我不知道如何使用它们。据我所知,我必须使用import语句,但当我这样做时,我会得到“除非提供了'--module‘标志,否则无法编译模块”,而且,我也不希望在我的目标代码中包含模块。

代码语言:javascript
复制
import { createDevTools } from 'redux-devtools';
const DevTools = createDevTools(/**/);

有什么特别的方法可以做到这一点吗?或者是定义文件,如redux-devtools,首先是错误的?

编辑:

如果我将TypeScript编译成ES6,我不再得到"cannot compile modules...“当我导入外部模块时出现消息。相反,TypeScript会生成如下语句:

代码语言:javascript
复制
const redux_devtools_1 = require('redux-devtools');

我觉得很奇怪,因为'require()‘不是ES6的一部分,这意味着我必须使用es6-shim + RequireJS才能使用这个解决方案?

另外,我有一个通用的'_references.ts‘文件,如下所示:

代码语言:javascript
复制
 /// <reference path="../typings/browser.d.ts" />
EN

回答 1

Stack Overflow用户

发布于 2016-03-31 18:29:57

使用"triple-slash reference" /// <reference path="...">而不是import语句来引入您的库定义。

这让TypeScript知道这些类型,因此它将进行编译,但不会尝试生成任何模块。

然后由您来确保这些库实现在您的运行时环境中可用。

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

https://stackoverflow.com/questions/36329954

复制
相关文章

相似问题

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