2016-09-15 90 views
0

有什麼區別: import * as jslibname from 'jslibname'declare var jslibname: any;差異/角2

例如,對於火力點,我需要declare var firebase: any; 對於時刻,我需要import * as moment from 'moment';

這裏的邏輯是什麼?我什麼時候使用其中一種?

順便說一下,這與Angular CLI和systemjs有關。

回答

0

當你

import * as library from 'library'; 

你真的導入庫,就可以開始使用它。如果您嘗試在未導入之前使用它,則會導致錯誤。有時圖書館已被導入已在您的應用程序的某個地方,但你只是想使用它。你可以沒有問題,應用程序將工作,但我想你的情況下,TS編譯器會拋出一個錯誤(並且可能你的IDE將它標記爲錯誤)。這是因爲你的庫沒有類型定義文件(.d.ts)。要解決這個問題,最簡單的方法是做

declare var library: any; 

這是告訴該庫中存在,並停止拋出一個編譯錯誤(也IDE停止抱怨)的TS編譯器。

+0

啊,這是有道理的。謝謝!下一次我將不得不仔細看看我的配置文件。 – user68311