angular2 rc1如何导入外部js库

angular 2 rc1 how to import external js library

我正在尝试将 joint.js 与 Angular 2 一起使用。这是我所做的。

index.html

<!-- JoinJS -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jointjs/0.9.7/joint.css" />
<script src="https://code.jquery.com/jquery-2.2.1.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.10.1/lodash.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.3.1/backbone-min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jointjs/0.9.7/joint.js"></script>  

config.js

  var  map = {
    'app':                        'app', // 'dist',
    'rxjs':                       'https://npmcdn.com/rxjs@5.0.0-beta.6',
    'angular2-in-memory-web-api': 'https://npmcdn.com/angular2-in-memory-web-api', // get latest
    'joint':                      'https://cdnjs.cloudflare.com/ajax/libs/jointjs/0.9.7/joint.js'
  };

  //packages tells the System loader how to load when no filename and/or no extension
  var packages = {
    'app':                        { main: 'main.ts',  defaultExtension: 'ts' },
    'rxjs':                       { defaultExtension: 'js' },
    'angular2-in-memory-web-api': { defaultExtension: 'js' },
    'joint': { defaultExtension: 'js' },
  };

service.ts

//declare var joint: any;
import * as joint from 'joint';

我收到错误消息“[ts] 找不到模块接头”。

这里缺少什么?

I got error "[ts] Could not find module joint".

FWIW 生成的 javascript 仍然可以 more

快速修复

您需要在 foo.d.ts 文件中声明 模块:

declare module "join" {
var foo:any;
export = foo;
}

https://basarat.gitbooks.io/typescript/content/docs/types/ambient/d.ts.html

您需要包含类型声明文件,以便 ts 编译器能够理解。全局安装 typings (npm install -g typings) 然后安装 jointjs typings (typings install dt~jointjs --save --global) 文件。 有关参考,请参阅 this and this