Typescript不支持许多WebGL 2函数和接口,如createVertexArray()
。因此,我想编写一个包装函数的声明文件,以便编译器不会抛出拟合。为此,我编写了一个包含不支持的函数的javascript文件:
function createVertexArray(glContext) {
return glContext.createVertexArray();
}
// a bunch more
我现在需要为这些函数创建一个Typescript声明文件。据我了解,当你要求typescript加载模块时,它会查看index.d.ts文件的目录。在那里你必须定义你的javascript文件中使用的函数和接口。这就是我到目前为止所做的:
declare module Webgl2 {
export interface WebGLVertexArrayObject {}
export function createVertexArray(glContext: WebGLRenderingContext):WebGLVertexArrayObject;
export function deleteVertexArray(glContext: WebGLRenderingContext, vertexArray: WebGLVertexArrayObject):void;
export function isVertexArray(glContext: WebGLRenderingContext, vertexArray: WebGLVertexArrayObject):boolean;
export function bindVertexArray(glContext: WebGLRenderingContext, vertexArray: WebGLVertexArrayObject):void;
}
export = Webgl2;
但是,我需要以下方面的帮助:
createVertexArray()
返回的接口?我已将这两个文件放在pastebin here上。
答案 0 :(得分:0)
有人已经做了一段时间了。您可以找到WebGL2.d.ts
文件here。
然后,您可以使用"files"
文件中的tsconfig.json
字段导入,如图所示here。
{
"compilerOptions": {
"module": "commonjs",
"target": "es5",
"noImplicitAny": true,
"strictNullChecks": false,
"types": [],
"forceConsistentCasingInFileNames": true,
"lib": ["ES2015", "ES2017.SharedMemory", "DOM"]
},
"files": [
"Misc.d.ts",
"WebGL2.d.ts"
]
}