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

无模块环境下如何使用无强名称的TypeScript定义文件,typescript,ecmascript-5,Typescript,Ecmascript 5,我正在使用Visual Studio 2013/TypeScript 1.8.5/NPM/Typings 我想用一些React JSX将TypeScript编译成ES5代码,更重要的是,不需要模块 一些定义文件键入正在获取我只有一个名为module的字符串。“字符串命名”的意思是: declare module "redux-devtools" {} /// <reference path="../typings/browser.d.ts" /> 当其他人有这种情况时: dec

我正在使用Visual Studio 2013/TypeScript 1.8.5/NPM/Typings

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

一些定义文件键入正在获取我只有一个名为module的字符串。“字符串命名”的意思是:

declare module "redux-devtools" {}
 /// <reference path="../typings/browser.d.ts" />
当其他人有这种情况时:

declare namespace Redux {}
declare module "redux" {}
当有我所谓的“强名称”时,我可以直接在代码中使用这些定义

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

import { createDevTools } from 'redux-devtools';
const DevTools = createDevTools(/**/);
有什么特别的方法可以做到这一点吗?还是定义文件,比如redux devtools,一开始就错了

编辑:

如果我将TypeScript编译到ES6,那么在导入外部模块时,我将不再收到“Cannotcompilemodules…”消息。TypeScript生成如下语句:

const redux_devtools_1 = require('redux-devtools');
我觉得很奇怪,因为'require()'不是ES6的一部分,这意味着我必须使用ES6 shim+RequireJS才能使这个解决方案工作

此外,我还有一个通用的“_references.ts”文件,如下所示:

declare module "redux-devtools" {}
 /// <reference path="../typings/browser.d.ts" />
//
使用
//
而不是
import
语句来提取库定义

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

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