Typescript-feil TS1005: ';&39;' forventet, men jeg ser ikke hvor jeg mangler et semikolon


Jeg prøver å lære Typescript og jeg følger opplæringen på denne siden: https://www.typescriptlang.org/docs/handbook/functions.html. Når jeg lager en fil cardPicker.ts og limer inn følgende kode, vil den ikke kompilere. Jeg får denne feilen 5 ganger: Typescript-feil TS1005: ';' forventet. Linjene 1, 6, 7, 14 og 15. Jeg ser ikke hvor et semikolon mangler, men kanskje feilmeldingen betyr noe annet. Jeg er bekymret for min versjon av ts, men jeg installerte den for bare to uker siden. Når jeg gjør "tsc -version" står det 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);

Jeg kompilerer prosjektet ved å kjøre "tsc cardPicker.ts" i kommandolinjen.

Redigert for å legge til år senere: Ville gjøre det klart, jeg innså ikke at jeg hadde to versjoner av TypeScript på datamaskinen min - en ble installert med Visual Studio for en tid siden, og den ble brukt da. Når jeg byttet til å bruke Node.js-kommandoprompten som bug-a-lot foreslo i svaret sitt nedenfor, ble den riktige versjonen brukt. Ved å bruke en vanlig Windows-kommandoprompt, kunne jeg få det til å fungere ved å navigere til mappen der tsc befinner seg. Den ble da vellykket kompilert uten noen endringer i koden.

Svar #1

når du installerer tsc kanskje du brukte npm install tsc -g

Følg denne lenken: https://www.npmjs.com/package/tsc dette pakken ble avviklet.

Nå bør du bruke npm install typescript -g, så vil du ha den nyeste versjonen.

I dag returnerer tsc -v Versjon 2.8.1

Med nyere versjon vil du ikke få ts1005

Svar #2

Er det alt du har i ts-filen din? Eller har du noen referansekommentarer der også?

Den feilen klager ikke på manglende semikolon, siden TypeScript ikke krever at du bruker dem i det hele tatt, akkurat som JS i den forbindelse.

Feilen du får i stedet er fordi noe annet ikke ga mening for kompilatoren, som for eksempel en erklæring som ikke avsluttet riktig. (se https://github.com/DefinitelyTyped/DefinitelyTyped/issues/4004). For eksempel:

let deck: Number of Date;

Vil produsere den nøyaktige feilen.

Avhengig av oppsettet ditt kan det hende at du kompilerer mer enn du tror.

I ditt tilfelle, siden kompilatoren din er så gammel, kan det bare være at den ikke forstår nøkkelordet let som ble introdusert i TS 1.4.

OPPDATERING

For å klargjøre, kommandoen du brukte for å installere typescript installerte den nyeste versjonen. Men for å bruke den, må du kjøre Node.js-kommandoprompt i stedet for den vanlige Windows-kommandoprompten, forutsatt at du er på Windows.

Relaterte artikler