Как правильно использовать тип unknown?

Тип unknown в TypeScript представляет собой наиболее безопасный тип, который может быть использован для представления значений, о которых ничего неизвестно. Он похож на тип any, но с более строгими проверками типов. На практике, использование типа unknown требует явного приведения типов перед его использованием.

Для использования типа unknown, вы можете объявить переменную с типом unknown следующим образом:

let myVariable: unknown;

Когда переменной присваивается значение, TypeScript не предполагает ничего о ее типе. Вы не можете использовать переменную типа unknown напрямую без дополнительного преобразования типов. TypeScript считает, что значения типа unknown могут иметь любые свойства и методы, но не даст вам доступ к ним без явного приведения типов.

Для работы с переменными типа unknown, вам понадобится либо проверить их тип с помощью условного оператора if или оператора switch, либо выполнить явное приведение типов.

if (typeof myVariable === 'string') {
  let strLength: number = (myVariable as string).length;
}

switch (typeof myVariable) {
  case 'number':
    let square: number = (myVariable as number) ** 2;
    break;
  case 'boolean':
    let opposite: boolean = !(myVariable as boolean);
    break;
  default:
    // Handle other cases
    break;
}

Обратите внимание, что мы используем ключевое слово as для выполнения приведения типов. Также, в этом примере мы использовали typeof оператор для проверки типа переменной, но можно использовать и другие методы проверки типа, такие как instanceof или проверка наличия свойств.

Тип unknown может быть полезен, когда вы работаете с данными, о которых не знаете ничего, например, в API вызовах или когда вы хотите написать гибкий код, который может работать с различными типами данных. Однако, следует быть осторожным при использовании типа unknown, так как он может привести к ошибкам выполнения, если не будет сделано явное приведение типов перед использованием.