Общий тип TypeScript с неизвестным

#typescript #typescript-generics

#typescript #typescript-generics

Вопрос:

Что означает это утверждение?

 type O<T> = T | unknown[]
  

В каком случае unknown используется и что O<T> означает?

Комментарии:

1. Это общий тип объединения . В нем говорится «значение будет либо того типа, который я указал как T , либо массивом неизвестно чего» .

2. Когда unknown назначается, я знаю, что это объединение общего типа.

3. Тогда мне непонятно, о чем вы спрашиваете.

4. Пример const a: O<string> = [{}, "something"];

5. Спасибо, я искал пример. упоминание общего типа T и предоставление, отличное от этого, будет использовать unknown[]

Ответ №1:

Полное описание unknown . https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-0.html#new-unknown-top-type

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

O<T> из вашего примера означает некоторый T или массив неизвестных.

 let o: O<number> = 123;
o = [true, '123'];
if (typeof o === 'number') {
  const n: number = o;
}
  

Комментарии:

1. Спасибо, это именно то, что я искал.