我正在尝试学习Typescript,我正在按照本页面上的教程进行操作:https://www.typescriptlang.org/docs/handbook/functions.html。当我创建文件cardPicker.ts并粘贴以下代码时,它将无法编译。我得到这个错误5次:打字稿错误TS1005:';'预期。第1,6,7,14和15行。我看不到分号丢失的位置,但错误信息可能意味着其他内容。我很担心我的ts版本,但我刚刚在两周前安装了它。当我做“tsc -version”时,它说1.0.3.0
let deck = {
suits: ["hearts", "spades", "clubs", "diamonds"],
cards: Array(52),
createCardPicker: function() {
return function() {
let pickedCard = Math.floor(Math.random() * 52);
let pickedSuit = Math.floor(pickedCard / 13);
return {suit: this.suits[pickedSuit], card: pickedCard % 13};
}
}
}
let cardPicker = deck.createCardPicker();
let pickedCard = cardPicker();
alert("card: " + pickedCard.card + " of " + pickedCard.suit);
我通过在命令行中运行“tsc cardPicker.ts”来编译项目。
答案 0 :(得分:2)
你的ts文件中有你的一切吗?或者你也有一些参考评论?
这个错误并没有抱怨丢失分号,因为TypeScript根本不需要你使用它们,就像JS那样。
你得到的错误是因为其他东西对编译器没有意义,就像一个没有正确结束的声明。 (见https://github.com/DefinitelyTyped/DefinitelyTyped/issues/4004)。例如:
let deck: Number of Date;
会产生确切的错误。
根据您的设置,您可能编译的次数超出了您的想象。
在您的情况下,由于您的编译器太旧了,可能只是因为它不了解TS 1.4中引入的关键字let
。
<强>更新强>
要澄清一下,您用来安装最近安装的typescript的命令。 但是为了使用它,你需要运行node.js命令提示符而不是正常的Windows命令提示符,假设你在Windows上。
答案 1 :(得分:0)
Heyy @Kelli我得到了同样的错误,但我解决了。如果您使用visual studio,请在Visual Studio Code中复制您的代码并选择语言作为打字稿。在缩进代码并正确添加开始和结束括号后添加分号后,您会在拼错的地方变红。
答案 2 :(得分:0)
今天我花了几个小时在LESS预处理器中追逐类似的问题(我的错误是关于逗号字符)。
error TS1005: ',' expected
结束我在LESS文件中的注释中有一些反复的字符,它们让预处理器混乱(可能它是用TypeScript -Angular 5项目编写的 - 其中反引号有特殊处理)
答案 3 :(得分:0)
安装tsc时可能使用了<script src="bundle.js" />
点击此链接: https://www.npmjs.com/package/tsc 这个包已经停产。
现在您应该使用<script src="bundle.js"></script>
,然后您将拥有更新的版本。
今天npm install tsc -g
返回版本2.8.1
使用较新版本时,您将无法获得ts1005
答案 4 :(得分:0)
我有一个非常奇怪的错误,像这样的错误:
花了我一点时间才能意识到路径已被复制
src/app/services/
嵌套在src/app/services/MYPROJECT
内部。这是由于代码生成路径错误,我没有注意到多余的文件。
src/app/services/MYPROJECT.NG/src/app/services/api/rr.api.ts(972,19): error TS1005: ';' expected.
src/app/services/MYPROJECT.NG/src/app/services/api/rr.api.ts(974,10): error TS1128: Declaration or statement expected.
src/app/services/MYPROJECT.NG/src/app/services/api/rr.api.ts(975,17): error TS1005: ';' expected.
src/app/services/MYPROJECT.NG/src/app/services/api/rr.api.ts(976,17): error TS1005: ';' expected.
src/app/services/MYPROJECT.NG/src/app/services/api/rr.api.ts(977,24): error TS1005: ';' expected.
src/app/services/MYPROJECT.NG/src/app/services/api/rr.api.ts(978,17): error TS1005: ';' expected.
src/app/services/MYPROJECT.NG/src/app/services/api/rr.api.ts(986,4): error TS1128: Declaration or statement expected.
src/app/services/MYPROJECT.NG/src/app/services/api/rr.api.ts(987,24): error TS1005: ';' expected.
src/app/services/MYPROJECT.NG/src/app/services/api/rr.api.ts(988,20): error TS1005: ';' expected.
src/app/services/MYPROJECT.NG/src/app/services/api/rr.api.ts(989,13): error TS1005: ';' expected.
src/app/services/MYPROJECT.NG/src/app/services/api/rr.api.ts(990,13): error TS1005: ';' expected.
src/app/services/MYPROJECT.NG/src/app/services/api/rr.api.ts(991,25): error TS1005: ';' expected.
src/app/services/MYPROJECT.NG/src/app/services/api/rr.api.ts(992,15): error TS1005: ';' expected.
src/app/services/MYPROJECT.NG/src/app/services/api/rr.api.ts(993,21): error TS1005: ';' expected.
src/app/services/MYPROJECT.NG/src/app/services/api/rr.api.ts(994,20): error TS1005: ';' expected.
src/app/services/MYPROJECT.NG/src/app/services/api/rr.api.ts(996,6): error TS1128: Declaration or statement expected.
src/app/services/MYPROJECT.NG/src/app/services/api/rr.api.ts(997,14): error TS1005: ';' expected.
答案 5 :(得分:0)
我已经遇到了这个问题。这可能是由于Angular版本和TypeScript版本之间不匹配而引起的。因此只需执行以下步骤
步骤01-为Visual Studio 2015安装TypeScript
步骤02-使用以下命令安装最新的Angular版本(Angular 7)
步骤03-使用以下命令检查TypeScript版本
这将显示打字稿版本,类似于3.2.4(安装在 上一步)
特别感谢Shahriar Morshed和TranslucentCloud,因为我提到了他们的answers来解决我的问题。