我使用的是Visual Studio 2013/TypeScript 1.8.5/NPM/Typings。
我想用一些React JSX把TypeScript编译成ES5代码,更重要的是,不用模块。
一些定义文件的类型只有一个名为module的字符串。通过“字符串命名”,我的意思是这样:
declare module "redux-devtools" {}当其他人有这样的问题时:
declare namespace Redux {}
declare module "redux" {}当有我所谓的“强名称”时,我可以直接在我的代码中使用这些定义。
var foobar = Redux;但是当只有一个名为module的字符串时,我不知道如何使用它们。据我所知,我必须使用import语句,但当我这样做时,我会得到“除非提供了'--module‘标志,否则无法编译模块”,而且,我也不希望在我的目标代码中包含模块。
import { createDevTools } from 'redux-devtools';
const DevTools = createDevTools(/**/);有什么特别的方法可以做到这一点吗?或者是定义文件,如redux-devtools,首先是错误的?
编辑:
如果我将TypeScript编译成ES6,我不再得到"cannot compile modules...“当我导入外部模块时出现消息。相反,TypeScript会生成如下语句:
const redux_devtools_1 = require('redux-devtools');我觉得很奇怪,因为'require()‘不是ES6的一部分,这意味着我必须使用es6-shim + RequireJS才能使用这个解决方案?
另外,我有一个通用的'_references.ts‘文件,如下所示:
/// <reference path="../typings/browser.d.ts" />发布于 2016-03-31 18:29:57
使用"triple-slash reference" /// <reference path="...">而不是import语句来引入您的库定义。
这让TypeScript知道这些类型,因此它将进行编译,但不会尝试生成任何模块。
然后由您来确保这些库实现在您的运行时环境中可用。
https://stackoverflow.com/questions/36329954
复制相似问题