gma*_*man 5 javascript intellisense visual-studio-code monaco-editor
有没有办法暗示VSCode/Monaco的intellisense变量类型.
我有一些像这样的代码
var loc = window.location;
var gl = context1.getContext("webgl");
var ctx = context2.getContext("2d");
Run Code Online (Sandbox Code Playgroud)
我看到VSCode知道这loc
是一个URL
但它不知道什么gl
是
它也不知道什么ctx
是
这是有道理的,让函数根据其输入返回不同的类型是一个有点不寻常的情况.
但它确实有类型数据 WebGLRenderingContext
而且它知道 CanvasRenderingContext2D
有没有办法为我告诉vscode /摩纳哥即gl
是实例WebGLRenderingContext
,并且ctx
是一个实例CanvasRenderingContext2D
,而无需切换到打字稿?也许通过添加某种评论?
我需要解决方案在摩纳哥工作(至少在我的测试中显示所有相同的完成),因为这是一个WebGL教程站点,实际上不是VSCode,但我希望解决方案是相同的.
gma*_*man 12
是否看到JSDoc样式类型注释在VSCode中工作,尽管它们似乎在Monaco中不起作用.
var loc = window.location;
/** @type {WebGLRenderingContext} */
var gl = context1.getContext("webgl");
/** @type {CanvasRenderingContext2D} */
var ctx = context2.getContext("2d");
Run Code Online (Sandbox Code Playgroud)
正如 Micah 在对已接受答案的评论中指出的那样,外部模块仍然可能存在问题。如果库定义了一个全局对象,您可以从中引用类型,那么只需对模块进行 require 操作就可以使 jsdoc 类型注释发挥作用。否则,您可以通过导入所有内容并将其映射到您自己的名称来模仿这一点。
import * as Foo from 'foo'
/** @type {Foo.Foo} */
var foo;
Run Code Online (Sandbox Code Playgroud)
https://github.com/Microsoft/TypeScript/issues/8237#issuecomment-213047062
归档时间: |
|
查看次数: |
5522 次 |
最近记录: |