extend
という静的プロパティを持つプレーンなjavascriptコンストラクタ関数があるとします。このメソッド(extend
)に文字列を渡すと、ウィンドウオブジェクトに新しいコンストラクタ関数が作成されます。ここで呼び出されたときにグローバル名前空間を汚染する関数の場合
はその実装である:ここでhttps://canjs.com/docs/can.Construct.extend.html
は私のタイプの定義である:
declare module "can/construct/" {
interface ConstructFactory {
new(): Construct;
}
class Construct {
constructor();
static extend(name: string): ConstructFactory;
static extend(name: string, staticProperties: {}): ConstructFactory;
static extend(name: string, staticProperties: {}, instanceProperties: {}): ConstructFactory;
static extend(staticProperties: {}, instanceProperties: {}): ConstructFactory;
static extend(instanceProperties: {}): ConstructFactory;
}
}
マイtypescriptファイルは次のようになります。
import {Construct} from "can/construct/";
Construct.extend('Foo');
let foobar = new Foo();
しかし、私はエラーを取得: TS2304: Cannot find name 'Foo'.
extend
メソッドでFoo
が作成されたことをtypescriptに知らせるにはどうすればよいですか?
「あなたのためにコンストラクタ変数を返す関数を宣言できますか?」 – JuKe
私の最後のコメントについてのご意見はありますか? – JuKe