2016-03-31 20 views
0

我正在使用Visual Studio 2013/TypeScript 1.8.5/NPM/Typings。如何在無模塊環境中使用沒有強名稱的TypeScript定義文件

我想用一些React JSX將TypeScript編譯成ES5代碼,更重要的是,沒有模塊。

一些定義文件類型取得我只有一個名爲模塊的字符串。通過「串命名爲」我的意思是這樣的:

declare module "redux-devtools" {} 

當別人有這樣的:

declare namespace Redux {} 
declare module "redux" {} 

當是我所說的「強名稱」,我可以直接使用這些定義我的碼。

var foobar = Redux; 

但是,當只有一個名爲模塊的字符串,我不知道如何使用它們。據我所知,我必須使用一個導入語句,但是當我這樣做時,我會得到一個「不能編譯模塊,除非提供'--module'標誌」,並且我不想在我的目標代碼中使用模塊。

import { createDevTools } from 'redux-devtools'; 
const DevTools = createDevTools(/**/); 

有沒有特定的方法來做到這一點?還是定義文件,如redux-devtools,首先是錯誤的?

編輯:

如果我編譯打字稿到ES6,我不再得到「無法編譯模塊...」的消息時,我引入了外部模塊。打字稿生成報表是這樣,而不是:

const redux_devtools_1 = require('redux-devtools'); 

我覺得奇怪,因爲「需要()」不是ES6的一部分,這意味着我將不得不使用ES6-墊片+ RequireJS此解決方案的工作?

另外,我有一個大致的「_references.ts」文件,如:

/// <reference path="../typings/browser.d.ts" /> 

回答

0

使用"triple-slash reference"/// <reference path="...">代替import語句庫中的定義來拉。

這讓TypeScript知道這些類型,所以它會編譯,但不會嘗試生成任何模塊。

然後由您來確保這些庫實現在運行時環境中可用。

相關問題