添加没有 typing 的第三方库
请注意,这仅适用于高达 1.0.0-beta.10 版本的 angular-cli!
某些库或插件可能没有 typing。如果没有这些,TypeScript 就无法对它们进行类型检查,从而导致编译错误。仍然可以使用这些库,但与导入的模块不同。
-
在页面上包含对库的脚本引用(
index.html
)<script src="//cdn.somewhe.re/lib.min.js" type="text/javascript"></script> <script src="/local/path/to/lib.min.js" type="text/javascript"></script>
- 这些脚本应添加全局(例如
THREE
,mapbox
,$
等)或附加到全局
- 这些脚本应添加全局(例如
-
在需要这些的组件中,使用
declare
初始化与 lib 使用的全局名称匹配的变量。这让 TypeScript 知道它已经被初始化了。 1declare var <globalname>: any;
有些 lib 附加到
window
,需要扩展才能在应用程序中访问。interface WindowIntercom extends Window { Intercom: any; } declare var window: WindowIntercom;
-
根据需要在组件中使用 lib。
@Component { ... } export class AppComponent implements AfterViewInit { ... ngAfterViewInit() { var geometry = new THREE.BoxGeometry( 1, 1, 1 ); window.Intercom('boot', { ... } } }
- 注意:某些库可能与 DOM 交互,应该在适当的组件生命周期方法中使用。