作爲關於使用bowser
DefinitelyTyped定義文件具體使用my previous question的後續,我實現了import
語句,按照該問題中的答案指示並進一步獲得。但是現在,TypeScript編譯器抱怨在所有bowser導入廢話之前編譯完美的代碼。使用導入語句會破壞其他類的引用嗎?
比方說,我有MyBowserClass.ts:
import bowser = require('bowser');
namespace MyNamespace {
export class MyBowserClass {
constructor() {
var isIos = (typeof bowser.ios === 'undefined') ? false : bowser.ios;
alert(isIos);
var myInstance = new MyNamespaceTwo.MyOtherClass(); // typescript compiler complains: Property 'MyOtherClass' does not exist on type 'typeof MyNamespaceTwo'.
}
}
}
然後我有MyOtherClass.ts:
namespace MyNamespaceTwo {
export class MyOtherClass {
constructor() {
alert('otherclass ctor');
}
}
}
的編譯器在這裏給我一個錯誤:
var myInstance = new MyNamespaceTwo.MyOtherClass();
說Property 'MyOtherClass' does not exist on type 'typeof MyNamespaceTwo'.
所以我想,也許這意味着我還需要進口MyOtherClass
?
我得到這個通過更新我的兩個文件的工作:
import bowser = require('bowser');
import otherClass = require('MyOtherClass'); // NEW IMPORT
namespace MyNamespace {
export class MyBowserClass {
constructor() {
var isIos = (typeof bowser.ios === 'undefined') ? false : bowser.ios;
alert(isIos);
var myInstance = new otherClass.MyNamespaceTwo.MyOtherClass(); // changed this to prefix with 'otherClass'
}
}
}
export namespace MyNamespaceTwo { // made this EXPORT
export class MyOtherClass {
constructor() {
alert('otherclass ctor');
}
}
}
這似乎是亂了套/瘋狂。我在這裏錯過了什麼?爲什麼bowser
定義文件無論如何都是模塊(當它由全局/基本上靜態的方法名稱組成時)?任何指導/幫助將不勝感激。
您可以更新問題,而不是試圖描述您所做的更改,請在更改後發佈代碼?這將使它更容易理解。 –
@NitzanTomer你去了。希望有所幫助。 –