如何向TypeScript添加对WebGL等浏览器功能的支持?

Blu*_*lub 8 typescript

var canvas = <HTMLCanvasElement>document.getElementById('canvas1');
var gl = canvas.getContext('webgl');
canvas.width = 400;
canvas.height = 400;
gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);
Run Code Online (Sandbox Code Playgroud)

"HTMLCanvasElement"似乎只提供了2d画布方法.它不会让我编译gl.viewport()等.如何添加对WebGL的这种支持?

小智 12

您需要在使用WebGL方法之前定义它们.您可以在此处找到一些社区编写的WebGL类型.将WebGL.d.ts添加到项目中并将其称为:

///<reference path="WebGL.d.ts" />

var canvas = <any>document.getElementById('canvas1');
var gl =  <WebGLRenderingContext> canvas.getContext('webgl');
canvas.width = 400;
canvas.height = 400;
gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,非常有帮助.顺便说一下,我很尴尬地说,这实际上是在开头的语言规范中解释的,我通常只是略过这些东西,但它在Typescript中被称为"环境声明". (3认同)