Typescript-fel TS1005: ';&39;' förväntades men jag ser inte var jag saknar ett semikolon
Jag försöker lära mig Typescript och jag följer handledningen på den här sidan: https://www.typescriptlang.org/docs/handbook/functions.html. När jag skapar en fil cardPicker.ts och klistrar in följande kod kompilerar den inte. Jag får detta fel 5 gånger: Typescript error TS1005: ' ; ' förväntad. Raderna 1, 6, 7, 14 och 15. Jag ser inte var ett semikolon saknas, men kanske betyder felmeddelandet något annat. Jag är orolig för min version av ts, men jag installerade den bara för två veckor sedan. När jag gör 'tsc -version' säger den 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);
Jag kompilerar projektet genom att köra "tsc cardPicker.ts" i kommandoraden.
Redigerad för att lägga till år senare: Ville klargöra, jag insåg inte att jag hade två versioner av TypeScript på min dator - en installerades med Visual Studio för ett tag sedan, och den använde den versionen. När jag väl bytte till att använda Node.js-kommandotolken som bug-a-lot föreslog i sitt svar nedan, använde den rätt version. Med en vanlig Windows-kommandotolk kunde jag få det att fungera genom att navigera till mappen där tsc finns. Det kompilerade sedan framgångsrikt utan några ändringar i koden.
Svar #1
när du installerar tsc kanske du använde npm install tsc -g
Följ denna länk: https://www.npmjs.com/package/tsc detta paket avbröts.
Nu bör du använda npm install typescript -g då får du den nyare versionen.
Idag returnerar tsc -v Version 2.8.1
Med nyare version kommer du inte få ts1005
Svar #2
Är det allt du har i din ts-fil? Eller har du några referenskommentarer där också?
Det felet klagar inte på saknad semikolon, eftersom TypeScript inte kräver att du använder dem alls, precis som JS i det avseendet.
Felet du får istället beror på att något annat inte var logiskt för kompilatorn, som en deklaration som inte avslutades korrekt. (se https://github.com/DefinitelyTyped/DefinitelyTyped/issues/4004). Till exempel:
let deck: Number of Date;
Kommer att producera det exakta felet.
Beroende på din uppsättning kan du hålla på att kompilera mer än du kanske tror.
I ditt fall, eftersom din kompilator är så gammal, kan det helt enkelt vara så att den inte förstår nyckelordet let som infördes i TS 1.4.
UPPDATERING
För att klargöra, kommandot du använde för att installera TypeScript installerade den senaste versionen. Men för att använda det behöver du köra Node.js-kommandotolken istället för den vanliga Windows-kommandotolken, förutsatt att du är på Windows.
