2017-06-23 61 views
0

我熟悉typescript中的引用标签,但绝对类型的模块似乎都不能真正在浏览器中正常工作,如果我使用'import'标签使intellisense工作为创建模块生成无关代码(我假设用于node.js?),因此我在浏览器中收到异常。在Visual Studio中导入DefinitelyTyped模块

///<reference path='paper/paper.d.ts' /> 

//import paper = require('paper'); //This makes intellisense work 

paper.setup(<HTMLCanvasElement>document.getElementById("#my-canvas")); 

var path = new paper.Path(); 
path.strokeColor = 'black'; 

var start = new paper.Point(100, 100); 
path.moveTo(start); 
path.lineTo(start.add([200, -50])); 
paper.view.draw(); 

下面是生成的文件,保持一个需要声明......这意味着什么浏览器。任何想法如何不让这发生?

"use strict"; 
///<reference path='paper/paper.d.ts' /> 
Object.defineProperty(exports, "__esModule", { value: true }); 
var paper = require("paper"); //Garbage that causes exceptions 
paper.setup(document.getElementById("#my-canvas")); 
var path = new paper.Path(); 
path.strokeColor = 'black'; 
var start = new paper.Point(100, 100); 
path.moveTo(start); 
path.lineTo(start.add([200, -50])); 
paper.view.draw(); 
//# sourceMappingURL=app.js.map 

回答

1

可以使用UMD,又名as namespace招:

// custom-typings/paper.d.ts 
import * from 'paper' 
export as namespace paper 

// tsconfig.json 
{ 
    "include": { 
    "custom-typings" 
    } 
} 
+0

将它设置为UMD,并使用 '导入*从纸 '纸';'工作 – user2927848