【发布时间】:2016-12-31 20:19:05
【问题描述】:
作为my previous question 关于使用bowserDefinitelyTyped 定义文件的后续行动,我按照该问题的答案实施了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 你去。希望有帮助。
标签: typescript typescript-typings definitelytyped