TypeScriptTypes de base

unknown

L’équivalent sûr de any : une valeur de type inconnu qu’il faut d’abord vérifier.

Sur cette page

Exemple

#
TypeScript
function describe(value: unknown): string {
  if (typeof value === 'string') return `Chaîne de ${value.length} caractères`
  if (typeof value === 'number') return `Nombre ${value.toFixed(1)}`
  if (Array.isArray(value)) return `Tableau de ${value.length} éléments`
  return 'Autre chose'
}

console.log(describe('CodeWorlds'))
console.log(describe(3.14159))
console.log(describe([1, 2, 3]))
Résultat
Chaîne de 10 caractères
Nombre 3.1
Tableau de 3 éléments

Définition et utilisation

#

Le type unknown désigne une valeur dont on ne sait rien. Comme avec any, vous pouvez tout lui assigner, mais vous ne pouvez pas l’utiliser avant d’avoir vérifié ce qu’elle est réellement.

Vous la vérifiez par restriction de type : typeof value === "string", Array.isArray(value), value instanceof Date, ou vos propres fonctions de garde de type. Après une telle vérification, le compilateur connaît déjà le type exact à l’intérieur de ce bloc.

C’est le type idéal pour des données venant de l’extérieur : une réponse d’API, le résultat de JSON.parse(), une valeur de localStorage ou l’erreur dans un bloc catch.

Syntaxe

#
Syntaxe
let value: unknown

Plus d’exemples

#
Sans vérification, pas d’utilisation possible
TypeScript
const input: unknown = JSON.parse('{"level": 7}')
console.log(input.level)
// Erreur : 'input' is of type 'unknown'.

Bonnes pratiques

#
  • Assignez le résultat de JSON.parse() à unknown, puis vérifiez la forme des données. Cela protège contre les surprises quand une API change.
  • Dans catch (error), l’erreur a le type unknown. Vérifiez error instanceof Error avant de lire error.message.

Entrées associées

#

Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.