2016-09-15 32 views
0

當我嘗試使用'call'方法切換出'this'引用時,出現TypeScript中的錯誤。有沒有更正確的方法來解決這個錯誤?使用Function.prototype.call()方法時出現TypeScript錯誤

我可提製下來到這個代碼(雖然我在這裏做教程時遇到過:。上一步9.10 http://www.angular-meteor.com/tutorials/socially/angular2/privacy-and-publish-subscribe-functions使用教程直接從GitHub的代碼產生同樣的問題

代碼重現(除了9.10在上面的教程):

function testIt(): Object{ 

    return {}; 
} 

testIt.call(this); 

錯誤產生:

[ts] Supplied parameters do not match any signature of call target. 

編輯:請注意,我得到這個問題特別在Visual Studio Code中,而其他人則表明在所有環境中都不會出現錯誤。

+0

你在哪裏打這個電話?什麼是'這個'? – Bergi

+0

如果您願意,您可以在鏈接中看到教程中的完整上下文(它在9.10中的「Meteor.publish」調用中明確表現出來)。這就是說 - 這很重要嗎?只要'this'是一個有效的對象,'.call()'方法不應該接受任何類型的'this'?另外請注意,它全部運行並按預期工作,似乎只是來自Typescript linter的一個類型錯誤。 ...我還會補充一點,我已經在各種地方嘗試過,這個「this」指的是不同的東西 - 無論如何都是相同的錯誤。 – WillyC

+0

嗯,我只知道Typescript在方法中聲明'this'的類型時存在(有?)問題。也許'testIt'是一個函數(不是方法),預計不會在對象上調用?試試'.call(undefined)' – Bergi

回答

0

我與版本1.5.2的VSCode,我沒有得到錯誤,嘗試更新它。

+0

1.5.2這裏也是,但在OS X上。問題依然存在。代碼提示暗示它期望被調用的函數的簽名,而不是調用方法,該方法將對象作爲第一個參數,然後調用被調用的函數的參數。 – WillyC

相關問題