0

私は Typescript 0.9.1.1 を使用していますが、この単純な問題でエラーが発生しているようです:

function doSomething(): void {
    console.log("Printing something");
}

window.setTimeout(() => {
    doSomething();
}, 3000);

それは私が持っていると言いますUnresolved Function or Method setTimeOut()。Typescript lib.d.ts ファイルを調べたところ、次のことがわかりました。

declare function setTimeout(expression: any, msec?: number, language?: any): number;

MDN のこのドキュメントから、私はそれを正しく呼んでいるとも言えます。では、なぜ TypeScript で問題が発生するのでしょうか?

これは私の lib.d.ts ファイルがどのように見えるかです: ここに画像の説明を入力 ここに画像の説明を入力

4

1 に答える 1

1

私は0.9.1.1を使用していますが、署名はあなたが投稿したものとは異なります:

declare function setTimeout(handler: any, timeout?: any, ...args: any[]): number;

そして、すべてがうまくコンパイルされます:

function doSomething() {
    console.log("Printing something");
}

window.setTimeout(function () {
    doSomething();
}, 3000);

そのlib.d.tsをどこで探していますか?

いずれにせよ、投稿した署名には式 (any) のみが必要であり、正しいタイプの msec (数値) を指定しているため、エラーが発生することはありません。したがって、呼び出しはそれと互換性があるように見えます。

于 2013-08-22T19:23:48.147 に答える