visual-studio-code - VS CODE 中的 WEBGL 自动补全
问题描述
我有一个学校项目,我需要使用 WEBGL。但是如果没有自动完成,编写所有代码非常困难。我没有找到合适的扩展名。你有想法吗?
解决方案
为了让 Visual Studio 代码自动完成,它需要知道变量的类型。
例如,如果你有这个
const gl = init();
VSCode 不知道变量gl
是什么类型,所以它不能自动完成。但是您可以通过在其上方添加 JSDOC 样式注释来告诉它类型,如下所示
/** @type {WebGLRenderingContext} */
const gl = init();
现在它将自动完成
HTML 元素也是如此。如果你这样做
const canvas = document.querySelector('#mycanvas');
VSCode 不知道这是什么类型的元素,但你可以告诉它
/** @type {HTMLCanvasElement} */
const canvas = document.querySelector('#mycanvas');
现在它会知道这是一个HTMLCanvasElement
而且,因为它知道它是 aHTMLCanvasElement
它知道.getContext('webgl')
返回 aWebGLRenderingContext
所以它也会自动为上下文提供自动完成功能
请注意,如果您再次将画布传递给某个函数,VSCode 不知道该函数返回什么。换句话说
/** @type {HTMLCanvasElement} */
const canvas = document.querySelector('#mycanvas');
const gl = someLibraryInitWebGL(canvas);
由于 VSCode 不知道someLibraryInitWebGL
返回什么,因此您将无法再完成,因此请遵循顶部的规则并告诉它。
/** @type {HTMLCanvasElement} */
const canvas = document.querySelector('#mycanvas');
/** @type {WebGLRenderingContext} */
const gl = someLibraryInitWebGL(canvas);
如果您想记录自己的函数,例如它们的参数和返回类型,您可以在此处查看其他 JSDOC 注释。
推荐阅读
- r - 将向量添加到列表的组件
- android - 自定义 SeekBar,如 Swipe 菜单 IOS 11 中的 SeekBar
- python - Python:通过 iter() 在 ElementTree 中使用命名空间
- android - RoadElement.getPermanentDirectedLinkId() 始终返回 0
- php - Laravel:根据 cookie 值有条件地渲染模式
- iis - 服务器未收到应用程序的响应 - IIS 日志显示错误 1236
- three.js - Three.js:如何防止部分网格在较大距离处消失
- google-bigquery - BigQuery 中的优雅时区转换
- c++ - 在 Windows Server 2016 上使用 C++/WinRT
- ios - UILongPressGestureRecognizer 不适用于 numberOfTapsRequired 和 minimumPressDuration 属性