unknown vs any: la scelta più sicura
Apprenda perché unknown obbliga a verificare i tipi prima dell'uso.
unknown vs any: la scelta più sicura è una lezione TypeScript Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento TypeScript Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso TypeScript Academy include 4 lezioni in totale.
Benvenuto
Il problema di any
let val: any = getData();
val.someMethod(); // TypeScript: OK. Runtime: possible crashIntroduzione a unknown
let val: unknown = getData();
// val.someMethod(); // Error: Object is of type 'unknown'Restringere unknown prima dell'uso
let input: unknown = getInput();
if (typeof input === 'string') {
console.log(input.toUpperCase()); // OK — narrowed to string
}unknown non è assegnabile a tipi specifici
let x: unknown = 'hello';
// let s: string = x; // Error
let s: string = x as string; // OK with assertionUtilizzare unknown nei blocchi catch
try {
doSomething();
} catch (err: unknown) {
if (err instanceof Error) {
console.log(err.message); // safe
}
}unknown per i dati esterni
const raw: unknown = JSON.parse(text);
if (
typeof raw === 'object' &&
raw !== null &&
'name' in raw
) {
console.log((raw as any).name);
}Type guard con unknown
function isUser(val: unknown): val is { name: string } {
return typeof val === 'object' && val !== null && 'name' in val;
}unknown rispetto a never
// unknown: anything can be assigned to it
let a: unknown = 42; // OK
// never: nothing can be assigned to it
function fail(): never { throw new Error(); }Scegliere tra any e unknown
Librerie di validazione a runtime
import { z } from 'zod';
const UserSchema = z.object({ name: z.string(), age: z.number() });
const user = UserSchema.parse(unknownData); // throws if invalidVerifica rapida
Riepilogo
Impara TypeScript con un tutor IA — gratis
Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.
- Corsi
- 101
- Lezioni
- 352
Domande Frequenti
La lezione «unknown vs any: la scelta più sicura» è gratuita?
Sì — il testo completo di «unknown vs any: la scelta più sicura» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso TypeScript Academy, passa a CoddyKit PRO. Il corso TypeScript Academy include 4 lezioni in totale.
Cosa imparerò in «unknown vs any: la scelta più sicura»?
Apprenda perché unknown obbliga a verificare i tipi prima dell'uso. Eserciti TypeScript Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare TypeScript Academy?
Non è richiesta alcuna esperienza precedente. TypeScript Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.
Quanto tempo richiede la lezione «unknown vs any: la scelta più sicura»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione TypeScript Academy?
Sì. Ogni lezione TypeScript Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Tipi primitivi: string, number, boolean
- Il tipo any e perché evitarlo
- unknown vs any: la scelta più sicura
- null, undefined e controlli strict null