TypeScript定义自定义类型时出现Unexpected identifier错误如何解决
问题原因
你遇到的报错和引入方式的问题本质是同一个核心原因:浏览器原生仅支持解析运行JavaScript代码,不识别任何TypeScript专属语法。
你代码里的type关键字定义类型、: Player类型标注、: Player[]数组类型声明都属于TypeScript特有的语法,不属于标准JavaScript语法。直接把.ts文件引入浏览器运行时,浏览器读到type关键字时无法识别,就会抛出你遇到的Uncaught SyntaxError: Unexpected identifier错误,你贴的前面那段纯JavaScript代码没有任何问题,报错和这部分代码无关。
关于TS文件引入的问题
不能像普通JavaScript文件一样直接引入.ts文件到浏览器运行,必须先将TypeScript编译为标准JavaScript文件之后,再引入编译后的.js文件。你现在直接引入.ts文件的操作就是错误的来源。
新手快速解决方法
- 先安装TypeScript编译工具:如果已经装了npm,执行全局安装命令
npm install -g typescript - 手动编译你的TS文件:在
game.ts所在目录执行命令tsc game.ts,执行完成后同目录会生成编译好的game.js文件 - 把你页面里的script引入改成
<script src="static/ts/game.js"></script>即可正常运行 - 开发阶段可以执行
tsc --watch game.ts,后续你修改game.ts的内容会自动编译成最新的game.js,不用每次手动执行编译命令
内容的提问来源于stack exchange,提问作者user13041346
相关产品推荐
相关产品推荐

