在typescript项目中导入matter-js

时间:2018-04-09 13:53:20

标签: typescript matterjs

我找到了这个文件:

https://www.npmjs.com/package/@types/matter-js

我执行此行:

npm install --save @ types / matter-js

在root ts文件中我收到错误消息:

  

'物'是指UMD全局,但当前文件是一个模块。   请考虑添加导入。

代码如下:

///<reference path="matter-js.d.ts"/>

import Ioc from "./libs/ioc";
let master = new Ioc();
console.log(master);
console.log(Matter);

浏览器出错:

  

app.ts:11未捕获的ReferenceError:未定义物质

我需要加载matter-js.js lib吗?

如果我提出:

import matter from 'matter-js'

我得到:

  

模块&#39;&#39; matter-js&#39;&#39;没有默认导出。

4 个答案:

答案 0 :(得分:3)

您可以尝试使用import * as matter from 'matter-js'加载它,这应该可以。

答案 1 :(得分:1)

我使用脚本标记加载了matter.js库。你忘记了吗?

<script src="js/matter.min.js"></script>

我用

安装了这些打字
npm install @types/matter-js

答案 2 :(得分:1)

您也可以

var Matter = require('matter-js');

import { Engine, World, Body, Bodies, Constraint } from 'matter-js';

@types/matter-js缺少Common类,但是也许您不应该使用它。如果确实需要,可以将其添加到包中的index.d.ts中,

export class Common {
    static extend(obj:any, deep?:boolean): any;
    static clone(obj:any, deep?:boolean): any;
    static keys(obj:any): any;
    static values(obj:any): any;
    static get(obj:any, path:string, begin:number, end:number): any;
    static set(obj:any, path:string, val:any, begin:number, end:number): any;
    static shuffle(array:any[]): any;
    static choose(choices:any[]): any;
    static isElement(obj:any):boolean;
    static isArray(obj:any):boolean;
    static isFunction(obj:any):boolean;
    static isPlainObject(obj:any):boolean;
    static isString(obj:any):boolean;
    static clamp(value:number, min:number, max:number):number;
    static sign(value:number): number;   
    static now(): number;
    static random(min?:number, max?:number): number;
    static colorToNumber(colorString:string): number;
    static log(...objs:any[]): void;
    static info(...objs:any[]): void;
    static warn(...objs:any[]): void;
}

答案 3 :(得分:0)

不幸的是,typescript lib似乎已经过时了。最后一次提交2年前。而应该是可选的参数在typescript定义中是必需的......