5 moduri de conversie ușoară

JavaScript a fost conceput pentru a scrie fragmente de cod scurt de doar câteva linii care urmau să fie încorporate în paginile web. Nimeni nu putea prevedea că JavaScript va deveni la fel de popular ca acum sau că va fi folosit pentru a scrie aplicații cu mii de linii de cod.

Oricât de mult JavaScript a crescut și este acum utilizat pe scară largă în construirea de aplicații, nu este un limbaj perfect. Începuturile sale umile și utilizarea inițială intenționată înseamnă că JavaScript are unele ciudații care pot face construirea de aplicații la scară largă un coșmar.

De exemplu, JavaScript nu va genera o eroare atunci când faceți referire la elemente care nu există într-un obiect sau când înmulțiți nul cu o valoare numerică.

Pentru JavaScript, un șir gol („”) este egal cu 0 (zero) atunci când cele două sunt comparate folosind un operator de egalitate (==). Mai rău, JavaScript nu vă va arăta astfel de erori în codul dvs. în dezvoltare. Veți vedea erorile numai după ce executați programul.

TypeScript, construit pe baza JavaScript, a fost astfel dezvoltat pentru a atenua provocările care apar la construirea aplicațiilor cu JavaScript. Pentru a realiza acest lucru, TypeScript efectuează verificări statice de tip în timp ce scrieți codul.

Verificarea statică înseamnă detectarea erorilor din codul dvs. fără a fi necesar să rulați codul. Verificarea tipului static este, prin urmare, verificarea erorilor în timpul dezvoltării pe baza tipului de valori pe care se operează în cod.

TypeScript este un superset tip de JavaScript. Fiind un superset de JavaScript înseamnă că orice cod JavaScript valid este și TypeScript valid. A fi tastat înseamnă că TypeScript adaugă reguli cu privire la modul în care pot fi utilizate diferite tipuri de date. TypeScript este de asemenea puternic tastat și nu puteți evita restricțiile impuse de sistemul de tipări.

TypeScript este o piatră de hotar mare și o dezvoltare semnificativă în dezvoltarea web. TypeScript vă permite să scrieți cod mai ușor de citit și ușor de întreținut. De asemenea, impune bune practici de codificare și îi ajută pe dezvoltatori să prindă și să evite erorile la scrierea codului.

TypeScript este mai fiabil și mai ușor de refactorizat, ceea ce îl face ideal pentru construirea de aplicații la scară largă în comparație cu JavaScript. Întrucât TypeScript este tastat puternic, să ne uităm la conversia de tip, importanța acesteia și modul în care TypeScript gestionează conversiile de tip.

Conversia tipului în TypeScript și importanța acesteia

Conversia tipului este procesul de conversie a unei valori de la un tip de date la altul, cum ar fi conversia unei valori șir într-un număr. Conversia tipului se poate face implicit, în cazul în care compilatorul convertește automat tipurile de date compatibile în timpul complicațiilor.

  Cum să transferați datele de activitate din aplicația de sănătate pe un iPhone nou

Conversia tipului poate fi, de asemenea, explicită, în cazul în care conversia tipului este necesară în mod explicit în codul sursă. Aceasta este adesea denumită tipărire.

Conversia tipului este importantă, deoarece permite dezvoltatorilor să lucreze cu diferite formate de date, respectând totuși tipurile de date așteptate în TypeScript. De asemenea, ajută la asigurarea rezultatelor previzibile din codurile sursă.

În calitate de dezvoltator, proiectarea tipurilor vă ajută să vă asigurați că codul dvs. îndeplinește în continuare cerințele de tip ale TypeScript. Vă face codul mai lizibil și mai ușor de înțeles și ajută la prevenirea erorilor legate de tip.

Conversiile de tip ajută, de asemenea, să susțină validările datelor și ajută TypeScript să vă ajute în dezvoltare, oferind toate instrumentele încorporate, cum ar fi completarea automată, care sunt asociate cu anumite tipuri.

Un caz obișnuit de utilizare pentru conversia tipului este cu șiruri și numere. Când convertiți șiruri în numere în TypeScript, pentru a evita erorile în codul dvs., convertiți numai șirurile numerice în numere. Adică, puteți converti șiruri precum „1”, „235”, „5234.5” și așa mai departe. Cu toate acestea, nu convertiți șiruri precum „bună ziua” într-un număr

Să ne uităm la diferitele moduri de conversie a șirurilor de caractere în numere în TypeScript:

Tastați aserțiune folosind „as”

Când lucrați cu diferite tipuri de date în codul dvs. TypeScript, uneori, veți avea mai multe informații despre tipul unei valori despre care TypeScript nu poate ști. În astfel de cazuri, spuneți TypeScript ce tip va fi o variabilă și nu lăsați compilatorul să deducă tipul. Aceasta se numește afirmație de tip.

Afirmarea tipului se face folosind cuvântul cheie as. Pentru a utiliza aserțiunea de tip pentru a converti un șir într-un număr, mai întâi setați tipul șirului la necunoscut. Acest lucru se datorează faptului că, în mod implicit, TypeScript consideră orice conversie a unui șir de tip într-un număr ca fiind potențial o greșeală. Acest lucru se datorează faptului că nici șirul și nici numărul nu se suprapun suficient cu celălalt. Pentru a converti un șir într-un număr, procedați după cum se arată mai jos:

/**
 * set the type of numString to be unkown, otherwise,
 * Typescript will infer numString to be a string value
 */
let numString: unknown = "23452";

// Type conversion using as - numString is converted to a number
// and assigned to the variable score
let score = numString as number;
console.log(score);
console.log(score * 35);

Ieșire:

23452
820820

Din rezultat, observați că variabila numString a fost convertită într-un număr și atribuită punctajului. Apoi putem face calcule numerice, cum ar fi înmulțirea cu scor, deoarece valoarea sa este un număr

  Afișul de contact nu funcționează pe iPhone? Încercați aceste 3 remedieri

Tastați aserțiune folosind <>

Tastați afirmația folosind <> poate fi folosită și pentru a converti un șir într-un număr. Funcționează exact ca și folosind cuvântul cheie as. Singura diferență în implementare este sintaxa, care este prezentată mai jos:

let numString: unknown = "23452";
// Type assertion using <> to convert a string to a number
let score = <number>numString;

console.log(score);
console.log(score * 35);

Ieșire:

23452
820820

Ieșirea este aceeași cu utilizarea cuvântului cheie as. Din nou, amintiți-vă să nu utilizați aserțiunea de tip pentru a converti șiruri care nu au valori numerice în ele.

Folosind constructorul de numere

Pentru a converti un șir într-un număr folosind constructorul Number treceți în șirul pe care doriți să îl convertiți în constructorul Number, așa cum se arată în fragmentul de cod de mai jos:

let numString = "23452"; // type inferred to string
let lives: string = "20"; // type annotated to string

// pass in string to Number constructor to convert to number
let score = Number(numString)
console.log(score / 17)

// pass in string to Number constructor to convert to number
let remainingLives = Number(lives);
console.log(remainingLives - 4)

Ieșire:

1379.5294117647059
16

Când utilizați constructorul Number, nu trebuie să setați tipul șirului la necunoscut. Funcționează cu valori de șir care au fost adnotate sau deduse în șir. Totuși, nu uitați să treceți șiruri numerice precum „514”. Dacă introduceți un șir care nu poate fi convertit într-un număr, va fi returnat NaN (Not-a-Number).

Folosind operatorul Unary plus (+).

Operatorul Unar plus (+), care precede operandul său unic, se evaluează la operandul pe care îl precede. De exemplu, +2 evaluează numărul 2, +542 evaluează numărul 542 și așa mai departe. Totuși, dacă operandul nu este un număr, operatorul unar plus (+) încearcă să-l convertească într-un număr.

De exemplu, +”98″, va evalua la 98, iar +”0″ va evalua la numărul 0. Prin urmare, putem folosi operatorul unar plus (+) pentru a converti șirurile în numere. Dacă introduceți un șir care nu poate fi convertit într-un număr, NaN este returnat după cum se arată mai jos:

let numString1 = "23452";
let numString2 = "973.82"
let word = "hello"

// Using the Unary plus (+) to convert strings to numbers
let num1 = +numString1;
let num2 = +numString2;
let notNumber = +word;

console.log(`${num1} is a ${typeof num1}`);
console.log(`${num2} is a ${typeof num2}`);
console.log(notNumber);

Ieșire:

23452 is a number
973.82 is a number
NaN

Utilizarea operatorului unar plus (+) este o modalitate bună de a converti șiruri de caractere în numere, deoarece este rapidă și nu face operații suplimentare asupra operanzilor săi.

  7 Cele mai bune practici de securitate HTML pentru vulnerabilitățile site-urilor statice

Folosind parseInt() și parseFloat()

La fel ca în JavaScript, Typescript nu face distincție între numere întregi și numere zecimale cunoscute și sub numele de numere în virgulă mobilă. Toate sunt considerate a fi de tip număr. Acestea fiind spuse, comportamentele parseInt() și parseFloat() diferă ușor.

parseInt() preia un argument șir, îl parsează și returnează un echivalent întreg în conformitate cu radixul specificat. parseFloat() preia un șir și îl analizează returnând un număr în virgulă mobilă.

De exemplu, dacă treceți „897” atât la parseInt() cât și la parseFloat(), veți primi înapoi numărul 897. Cu toate acestea, dacă treceți 897.75 atât la parseInt() cât și la parseFloat(), parseInt() va returnează 897 în timp ce parsefloat() va returna 897.75.

Prin urmare, atunci când convertiți șiruri numerice care nu au o zecimală, utilizați parseInt(), totuși, dacă șirul numeric are zecimale, utilizați parseFloat() așa cum se arată în codul de mai jos:

let numString1 = "897.75";
let numString2 = "724";
let word = "hello";

console.log("Parsing numerical strings with decimal numbers")
console.log(`Using parseInt -> ${parseInt(numString1)}`);
console.log(`Using parseFloat -> ${parseFloat(numString1)}`);

console.log("Parsing numerical strings with whole numbers")
console.log(`Using parseInt -> ${parseInt(numString2)}`);
console.log(`Using parseFloat -> ${parseFloat(numString2)}`);

console.log("Parsing strings that can't convert to number")
console.log(parseInt(word));
console.log(parseFloat(word));

Ieșire:

Parsing numerical strings with decimal numbers
Using parseInt -> 897
Using parseFloat -> 897.75
Parsing numerical strings with whole numbers
Using parseInt -> 724
Using parseFloat -> 724
Parsing strings that can't convert to number
NaN
NaN

Concluzie

Când lucrați cu valori de șir, cum ar fi rezultatul apelurilor API, este posibil să doriți să le convertiți în numere, astfel încât să puteți efectua calcule numerice pe ele. Când apare o astfel de nevoie, luați în considerare metodele evidențiate în articol pentru conversia șirurilor în numere.

Cu toate acestea, ori de câte ori convertiți șiruri în numere, aveți grijă, deoarece este posibil să obțineți NaN când încercați să convertiți un șir într-un număr.

Pentru a evita o astfel de eroare, asigurați-vă că toate șirurile pe care doriți să le convertiți într-un număr sunt șiruri numerice. De asemenea, puteți utiliza o instrucțiune if pentru a verifica NaN pentru a evita erorile în codul dvs.

De asemenea, puteți explora biblioteci TypeScript de top și runtime pentru a le cunoaște în calitate de dezvoltator.