具体的には、bowser
DefinitelyTyped定義ファイルを使用することについてのmy previous questionのフォローアップとして、私はimport
というステートメントをその質問の答えに基づいて実装し、さらに進んでいます。しかし今、TypeScriptコンパイラは、すべてのbowserインポートナンセンスの前に完全にコンパイルされたコードについて不平を言っています。importステートメントを使用すると、他のクラス参照が壊れますか?
のは、私が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();
をだから私は多分これは私もMyOtherClass
をインポートする必要があることを意味を推測Property 'MyOtherClass' does not exist on type 'typeof MyNamespaceTwo'.
を言って?
私は、これは私の2つのファイルを更新することで動作するようになった: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そこに行く。助けてくれることを望む。 –