當我嘗試使用'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中,而其他人則表明在所有環境中都不會出現錯誤。
你在哪裏打這個電話?什麼是'這個'? – Bergi
如果您願意,您可以在鏈接中看到教程中的完整上下文(它在9.10中的「Meteor.publish」調用中明確表現出來)。這就是說 - 這很重要嗎?只要'this'是一個有效的對象,'.call()'方法不應該接受任何類型的'this'?另外請注意,它全部運行並按預期工作,似乎只是來自Typescript linter的一個類型錯誤。 ...我還會補充一點,我已經在各種地方嘗試過,這個「this」指的是不同的東西 - 無論如何都是相同的錯誤。 – WillyC
嗯,我只知道Typescript在方法中聲明'this'的類型時存在(有?)問題。也許'testIt'是一個函數(不是方法),預計不會在對象上調用?試試'.call(undefined)' – Bergi