【问题标题】:Importing DefinitelyTyped modules in Visual Studio在 Visual Studio 中导入 DefinitiveTyped 模块
【发布时间】:2017-11-26 13:52:04
【问题描述】:

我熟悉 typescript 中的引用标签,但没有一个明确类型的模块似乎真正在浏览器中本地工作,如果我使用“导入”标签使智能感知工作,它会生成用于创建模块的无关代码(我假设与 node.js 一起使用?)因此我在浏览器中遇到异常。

///<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();

这是生成的文件,其中包含一个 require 语句……这在浏览器中没有任何意义。知道如何不让这种情况发生吗?

"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

【问题讨论】:

    标签: visual-studio typescript definitelytyped


    【解决方案1】:

    您可以使用 UMD,也就是 as namespace 技巧:

    // custom-typings/paper.d.ts
    import * from 'paper'
    export as namespace paper
    
    // tsconfig.json
    {
      "include": {
        "custom-typings"
      }
    }
    

    【讨论】:

    • 将其设置为 UMD 并使用 'import * as paper from 'paper';'工作
    猜你喜欢
    • 2021-02-23
    • 1970-01-01
    • 1970-01-01
    • 2021-06-09
    • 1970-01-01
    • 2019-05-25
    • 2018-02-28
    • 1970-01-01
    • 2017-07-10
    相关资源
    最近更新 更多