Я просматривал документы Vue API и заметил синтаксис Typescript, который мне непонятен.
type PropType<T> = { new (): T } | { new (): T }[]
Является ли { new (): T }
объектом с методом конструктора, который возвращает универсальный тип T, это то, что это означает?
Да, это объединение двух сигнатур конструкции:
type PropType<T> = { new (): T } | { new (): T }[]
class A {}
const b = (a: PropType<A>) =>
a instanceof Array ? [] : new a();
Поскольку это объединение, для него требуется сужение типа, чтобы компилятор мог выбрать правильный тип.
Это то, что если вы позвоните
new thing()
, вы получите Т.