如何在VSCode中指定JavaScript对象类型以启用代码提示?
在ES2015环境下让VSCode识别JavaScript对象类型的优雅方案
在ES2015环境里,想让VSCode识别JS对象类型、启用智能提示,有几种比你试过的方式更优雅的方案:
提前给数组标注元素类型(最省心)
不用每次取元素都单独标注,直接在数组定义时用JSDoc明确元素类型,后续从数组里取元素时,VSCode会自动识别类型:var person = new Person(); var person2 = new Person(); var person3 = new Person(); /** @type {Person[]} */ var people = [person, person2, person3]; // 这里VSCode自动识别people[0]是Person类型,直接有代码提示 var person = people[0];紧凑单行JSDoc标注
把类型注释和变量定义放在同一行,比单独的块注释更清爽,阅读体验更好:/** @type {Person} */ var person = people[0];类型断言语法(VSCode原生支持)
用括号包裹的类型断言语法,直接给取值表达式指定类型,写法更连贯:var person = /** @type {Person} */(people[0]);针对HTML元素绑定对象的场景
可以给下拉列表元素提前标注扩展类型,明确它的value属性是Person类型,这样处理器里就能直接识别:// 给myList标注类型,指定value为Person /** @type {HTMLSelectElement & { value: Person }} */ var myList = document.getElementById('myList'); function listChangeHandler() { var person = myList.value; // VSCode现在能识别为Person类型,提供智能提示 }或者在处理器内部直接对取值做断言:
function listChangeHandler() { var person = /** @type {Person} */(myList.value); }
内容的提问来源于stack exchange,提问作者1.21 gigawatts
相关产品推荐
相关产品推荐

