У меня есть webpack/typescript/webgl2
-установка.У меня есть класс, который представляет WebGL2RenderingContext
, который показан ниже:
import { isNullOrUndefined } from "util";
export class GraphixContext implements Context<WebGL2RenderingContext> {
private gl: WebGL2RenderingContext;
private canvas: HTMLCanvasElement;
private constructor(
context: WebGL2RenderingContext,
canvas: HTMLCanvasElement
) {
this.gl = context;
this.canvas = canvas;
}
public getContext(): WebGL2RenderingContext {
return this.gl;
}
public appendCanvas(id: string) {
document.body.appendChild(this.canvas);
this.canvas.id = id;
}
public static build(): GraphixContext {
let canvas = document.createElement("canvas");
const gl = canvas.getContext("webgl2");
if (isNullOrUndefined(gl)) {
throw new Error("WebGL could not be initialized");
}
return new GraphixContext(gl, canvas);
}
}
Я запускаю webpack-dev-server
с командой
`"scripts": {
"build": "webpack ",
"watch": "webpack --watch",
"start": "webpack-dev-server --open"
},`
Когда я начинаю вводить GraphixContext.ts
Горячая перезагрузка активируется и webpack
создает bundle.js
.Однако ТОЛЬКО если я отредактирую код в GraphixContext
, появится следующая ошибка:
TS2345: Argument of type 'WebGLRenderingContext | CanvasRenderingContext2D' is not assignable to parameter of type 'WebGL2RenderingContext'.
Type 'WebGLRenderingContext' is missing the following properties from type 'WebGL2RenderingContext': READ_BUFFER, UNPACK_ROW_LENGTH, UNPACK_SKIP_ROWS, UNPACK_SKIP_PIXELS, and 347 more.
Все остальные правки в моем проекте работают просто отлично.У кого-нибудь есть объяснение этой ошибке?