Pop*_*nel 8 javascript ecmascript-6
我正在尝试使用es6模块,但我遇到了一个错误:
SyntaxError:意外的标识符'{'.import call只需要一个参数.
顺便说一句,这是在macOS 10.13上的Safari 11中.
这是我的模块:
export class GameObject {
//code
}
export class GameLoop {
//code
}
Run Code Online (Sandbox Code Playgroud)
相关的HTML:
<body>
<script type="module" src="gameFoundation.js"></script>
<script src="gameTest.js"></script>
</body>
Run Code Online (Sandbox Code Playgroud)
和尝试使用该模块的脚本,它在第1行给出了上述错误:
import { GameObject, GameLoop } from "./gameFoundation.js"
class Rect extends GameObject {
//code
}
Run Code Online (Sandbox Code Playgroud)
我是JavaScript的新手,所以我想我得到了一些基本错误的东西.任何帮助将非常感激.
您的导出已命名,但您使用的是默认导入语法.您需要包装要导入的名称{...}:
import { GameObject } from "./gameFoundation.js";
import { GameLoop } from "./gameFoundation.js";
Run Code Online (Sandbox Code Playgroud)
如果您愿意,您也可以使用一个导入声明:
import { GameObject, GameLoop } from "./gameFoundation.js";
Run Code Online (Sandbox Code Playgroud)
另请注意,import它仅在模块中有效,因此您需要更改:
<script src="gameTest.js"></script>
Run Code Online (Sandbox Code Playgroud)
至
<script type="module" src="gameTest.js"></script>
Run Code Online (Sandbox Code Playgroud)
命名导出将适合您。
代替
import GameObject from "./gameFoundation.js"
import GameLoop from "./gameFoundation.js"
Run Code Online (Sandbox Code Playgroud)
到
import { GameObject, GameLoop } from "./gameFoundation.js"
Run Code Online (Sandbox Code Playgroud)
这是一篇关于所有 ES6导入/导出的好文章。对您阅读会有用。
| 归档时间: |
|
| 查看次数: |
10891 次 |
| 最近记录: |