typescript 打字错误TS 1005:应输入“;",但找不到缺少分号的位置

pb3skfrl  于 2023-01-21  发布在  TypeScript
关注(0)|答案(7)|浏览(383)

我正在努力学习 typescript ,我下面的教程在这个页面上:https://www.typescriptlang.org/docs/handbook/functions.html。当我创建一个文件cardPicker. ts并粘贴下面的代码时,它不会编译。我得到这个错误5次:打字错误TS1005:应为";"。第1、6、7、14和15行。我看不出哪里缺少分号,但可能错误消息意味着其他东西。我担心我的ts版本,但我两周前才安装它。当我使用"tsc-version"时,它显示www.example.com1.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);

我通过在命令行中运行"tscardPicker. ts"来编译该项目。
多年后编辑添加:我想澄清一下,我没有意识到我的电脑上有两个版本的typescript--一个是不久前用Visual Studio安装的,它正在使用那个。一旦我切换到使用node.js命令提示符,就像下面他们的回答中建议的bug-a-lot一样,它使用了正确的版本。使用常规的windows命令提示符,我可以通过导航到找到tsc的文件夹来使它工作,然后成功地编译了它,没有对代码做任何修改。

iq0todco

iq0todco1#

当你安装tsc时,可能你使用了npm install tsc -g
点击此链接:https://www.npmjs.com/package/tsc此软件包已停产。
现在您应该使用npm install typescript -g,然后您将拥有更新的版本。
今天返回tsc -v版本2.8.1
与较新的版本,你不会得到ts1005

sshcrbum

sshcrbum2#

这就是你的ts文件中的所有内容吗?或者你在里面也有一些参考注解吗?
这个错误不会抱怨缺少分号,因为TypeScript根本不要求您使用分号,就像JS在这方面一样。
而你得到的错误是因为其他东西对编译器来说没有意义,比如声明没有正确结束(参见https://github.com/DefinitelyTyped/DefinitelyTyped/issues/4004)。

let deck: Number of Date;

会产生同样的误差。
根据您的设置,您可能会编译比您想象的更多的内容。
在您的情况下,因为您的编译器太旧了,它可能只是不理解TS 1.4中引入的关键字let

    • 更新**

需要说明的是,您用来安装typescript的命令是最新安装的,但是为了使用它,您需要运行node.js命令提示符,而不是正常的Windows命令提示符(假设您使用的是Windows)。

pxy2qtax

pxy2qtax3#

Heyy @Kelli我也遇到了同样的错误,但我解决了它。如果你使用Visual Studio,请在Visual Studio代码中复制你的代码,并选择语言作为 typescript 。在你缩进代码并正确添加左括号和右括号,添加分号后,你的拼写错误会变红。

ewm0tg9j

ewm0tg9j4#

我今天花了几个小时在一个更少的预处理器中处理一个类似的问题(我的错误是关于一个逗号字符)。

error TS1005: ',' expected

最后,我有一些反勾字符内的评论在我的LESS文件,他们混淆了预处理器(也许它是写在TypeScript -Angular 5项目-其中反勾有一个特殊的待遇)

2vuwiymt

2vuwiymt5#

我也遇到了同样奇怪的错误,比如:
我花了比预期更长的时间才意识到路径是重复的
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.
qmb5sa22

qmb5sa226#

我曾经遇到过这个问题。这可能是因为Angular版本和TypeScript版本不匹配。所以只需按照以下步骤操作即可

  • 步骤01-安装用于Visual Studio 2015的TypeScript
  • TypeScript for Visual Studio 2015
  • 在安装之前,请检查是否已安装(检查路径C:\Program Files(x86)\Microsoft SDK\TypeScript),如果已安装,请删除。
  • 然后安装它,它将位于C:\程序文件(x86)\Microsoft SDK\类型脚本\3.2
  • 然后使用路径变量设置TypeScript的路径(将其设置为C:\Program Files(x86)\Microsoft SDK\TypeScript\3.2)
  • 步骤02-使用以下命令安装最新的Angular 版本(Angular 7)
  • npm安装-g@Angular /cli
  • npm安装-g@Angular /核心
  • 步骤03-使用以下命令检查TypeScript版本
  • ng版本
  • 这将显示typescript版本,类似于3.2.4(在上一步中安装)
  • 我特别要感谢Shahriar MorshedTranslucentCloud,因为我推荐他们的answers来解决我的问题。
yqhsw0fo

yqhsw0fo7#

JSON可能缺少大括号。
在示例中,添加两个注解行可以修复错误。

const myObject =
[
  {
    'id': '123',
    'person': [
      {   // MISSING BRACE
        'name': 'SushiGuy',
        'age': '99',
      }   // MISSING BRACE
    ]
  }
];

相关问题