当我们将鼠标悬停在函数或变量上时,为什么会出现信息文本

时间:2016-08-03 05:29:12

标签: typescript syntax ide visual-studio-code

我正在使用VSCode并在其中创建了2个文件index.html和app.js我创建了这个函数

function hello(){
console.log("hello");
  }
hello();

当我将鼠标悬停在hello函数上时,文本会出现在悬停状态,function():void 那么IDE如何确定什么是函数的返回类型虽然它的js文件不是ts文件仍然显示返回和数据类型,这是怎么发生的,这是什么导致它

1 个答案:

答案 0 :(得分:1)

这个东西叫做IntelliSense

好吧,我假设Visual Studio背后的团队对你编写的javascript代码做了一些分析。对于您的方法,很容易看出返回类型应该是无效的。也许它可以做更复杂的分析,你可以通过返回一个返回整数(静态)甚至是一个对象的方法来找到。这是他们在Visual Studio中称为IntelliSense的一部分。

Javascript也有一些类型知识

即使使用javascript而不是typescript进行编程,您仍然可以确定变量的类型。打字稿明确提到这一点,例如:let name : String = "JD";。但即使在简单的Javascript中,您也在处理类型,即使您没有明确提及它们。例如,您可以使用以下代码对此进行测试。

 var name = "JD";
 console.log(typeof name); // logs "string"

我认为解释IntelliSense如何做到这一点将超出这个答案的范围,我担心我也无法给出足够的答案。虽然stackoverflow上有一些帖子旨在回答这个问题,或者似乎无论如何都要链接到更多资源。