Javascript 如何在Typescript中导入模块(浏览器端)?
我正在尝试从typescript中的另一个文件导入模块。但我得到了以下错误:Javascript 如何在Typescript中导入模块(浏览器端)?,javascript,html,typescript,requirejs,transpiler,Javascript,Html,Typescript,Requirejs,Transpiler,我正在尝试从typescript中的另一个文件导入模块。但我得到了以下错误: scripts.js:6 Uncaught TypeError: Cannot read property 'Rectangle' of undefined(…) 下面是另一个文件(module.js)中的简单模块,但目录相同: export module Shapes { export class Rectangle { constructor ( public
scripts.js:6 Uncaught TypeError: Cannot read property 'Rectangle' of undefined(…)
下面是另一个文件(module.js)中的简单模块,但目录相同:
export module Shapes {
export class Rectangle {
constructor (
public height: number,
public width: number) {
}
}
export var rect1 = new Rectangle(10, 4);
}
以及导入的文件(scripts.js):
import {Shapes} from "./module";
let myshapes:Shapes.Rectangle;
myshapes=new Shapes.Rectangle(1,2);
还有index.html
<script data-main="scripts" src="./require.js"></script>
谢谢
John。您是否需要围绕“矩形”的“名称空间”“形状”?不需要,只是为了学习如何使用模块。。。显然,我不明白。它不会改变任何事情。我仍然有这个问题。我认为模块文件没有导入。如果您不需要它,我建议调用shapes.ts文件,然后从“/shapes”导入{Rectangle}。我还使用此模式将类组合在一起。我认为“module”只用于类型声明。我现在了解到可以使用“名称空间”而不是“模块”:哼。我认为它不是从那来的。如果我照你说的做,我会得到一个错误:“scripts.js:4 uncaughttypeerror:module_1.Rectangle不是一个构造器,你需要围绕着矩形的“名称空间”“形状”吗“?不是真的,只是学习如何使用模块。。。显然,我不明白。它不会改变任何事情。我仍然有这个问题。我认为模块文件没有导入。如果您不需要它,我建议调用shapes.ts文件,然后从“/shapes”导入{Rectangle}。我还使用此模式将类组合在一起。我认为“module”只用于类型声明。我现在了解到可以使用“名称空间”而不是“模块”:哼。我认为它不是从那来的。如果我照你说的做,我会得到一个错误:“scripts.js:4 uncaughttypeerror:module_1.Rectangle不是构造函数
{
"compilerOptions": {
"module": "amd",
"target": "es5",
"noImplicitAny": false,
"sourceMap": false
},
"exclude": [
"node_modules"
]
}