angular typescript - när man ska ange typer på parametrar
När man går igenom Angular 2-handledningarna kan jag se att typen för klassens egenskaper i vissa fall specificeras, till exempel name: string;, och på andra ställen utelämnas den. Detsamma gäller för funktioners returtyper. Detta gör det oklart för mig vad som är bästa praxis i detta avseende. Om man väljer att utelämna typen, förlorar man då inte en av de största fördelarna med TypeScript?
Svar #1
TypeScript kan härleda typen av en parameter från tilldelning, men ibland om det inte kan härleda typen används any.
Att använda TypeScript-kompilatorflaggan noImplicitAny kan ändra detta beteende. När flaggan noImplicitAny är sann och TypeScript-kompilatorn inte kan härleda typen, genererar den fortfarande JavaScript-filerna, men den rapporterar också ett fel.
Men du kan fortfarande uttryckligen ange any på en typ om det krävs.
Typkontroll hade verkligen sin fördel och jag skulle alltid rekommendera att använda det. Det bra med TypeScript är att, till skillnad från andra språk, kan man vara mycket kortfattad med typer. Vi kan skriva
doWork(work:{details:string})Vilket tillåter strikt typkontroll utan behov av att komma på en helt ny typdeklaration, även om detta inte kan delas.
Svar #2
Jag tror att din fråga kan bli flaggad som för bred eller åsiktsbaserad, men jag skulle starkt rekommendera att använda typer när det är möjligt. Det är en av fördelarna med TypeScript. Att fånga fel tidigt, vid kompileringstid, istället för att spendera timmar på felsökning bara för att upptäcka något dumt som ett stavfel.
En möjlig förklaring till varför deras dokumentation saknar typer kan vara för att hålla den enklare, mindre skrämmande för personer som inte använder TypeScript och kommer från AngularJs.
För mer information om fördelarna med TypeScript, vänligen se detta inlägg: https://stackoverflow.com/a/12694578/222328
Slutligen skulle jag föreslå att ta en titt på Angulars stilguide: https://angular.io/guide/styleguide