我想包含模块的名称空间,当我这样做时,它会警告我(并且我的代码将无法正常工作),我正在这样导入模块
import * as agl from "./agl";
并像这样使用它:
var vbo = new agl.VertexBuffer();
我的模块只包含将模块包含在单个名称空间中
import VertexArray from "./VertexArray";
import Display from "./Display";
import VertexBuffer from "./VertexBuffer";
import IndexBuffer from "./IndexBuffer"
import Shader from "./Shader";
import ShaderProgram from "./ShaderProgram";
import Texture from "./Texture";
import BufferLayout from "./BufferLayout";
export default {
VertexArray,
Display,
VertexBuffer,
IndexBuffer,
Shader,
ShaderProgram,
Texture,
BufferLayout
}
可能是问题所在,如何导入模块的命名空间?
答案 0 :(得分:0)
默认导出应通过以下方式导入:
import agl from "./agl";
您的代码无法正常运行,因为您正试图导入所有the named exports
。
选中this,以了解有关此内容的更多信息。
答案 1 :(得分:0)
export default { VertexArray, Display, VertexBuffer, IndexBuffer, Shader, ShaderProgram, Texture, BufferLayout }
这太可怕了,并引起您的问题。该模块会默认导出对象文字,而不是仅使用命名的导出。您应该使用
export {
VertexArray,
Display,
VertexBuffer,
IndexBuffer,
Shader,
ShaderProgram,
Texture,
BufferLayout
}
代替您的import * as agl …
工作。