在Visual Studio中编程时,当你键入一些已经定义过的变量或函数时,VS都会友好地为你提供代码提示,这种代码提示功能微软称之为intellisense。无论哪一代VS,intellisense一直是作为VS中最重要的核心功能之一。
intellisense是一个相当复杂的内核,因为要实时识别用户编写的代码,而且还要区分不同的语言(C++、C#、html、js、css等等),微软使用了不同的引擎来为不同的语言提供服务。由于不同语言的差异性,intellisense为不同语言提供的提示程度也各不相同,目前C++和C#是被intellisense完美支持的语言,而作为典型的弱类型语言js,intellisense对它的支持属实难做。
由于js是弱类型的原因,VS很难去识别一个变量的数据类型,除非你在变量定义的最初就赋值了一个明确类型的初始值,否则VS很难去判断这个变量在后续处于什么类型。


当然这也是无解的,因为谁也不知道你后面给这个变量赋值了什么东西,甚至有可能这个变量的类型是一直在变化的,有时候你给它赋值了一个字符串,有时候你又给它赋值了一个数字。
为了解决这个问题,微软将intellisense的js引擎的部分api开放了出来,让用户可以借助这些api去自行编写代码提示。比如在实际开发中,你明确知道一个变量的类型应该为字符串类型,那么你可以通过调用api来自行规定这个变量类型为字符串类型。
在VS2017之前(不包含),微软一直在使用".intellisense.js"引擎来为js添加自定义代码提示,该技术可以为js中的变量、函数添加自定义代码提示,不过在涉及到类与继承时,自定义的编写难度会非常高;而在VS2017上,微软直接抛弃了原来的".intellisense.js"引擎,转而使用了全新的".d.ts"引擎,该引擎允许用户使用TypeScript语法来为js添加自定义代码提示,由于TypeScript语法比较灵活和高级,用户在编写自定义代码提示时变得非常地便利,想要实现一些高级的代码提示也有了可能。
在后续的文章中,我将通过各种具体的例子来详细讲解如何使用".d.ts"引擎来为js代码添加自定义代码提示
浙公网安备 33010602011771号