En el archivo de declaración del titiritero types.d.ts, me encontré con la siguiente definición de tipo:
export declare type EvaluateFunc<T extends unknown[]> = (...params: InnerParams<T>) => Awaitable<unknown>; export declare type InnerParams<T extends unknown[]> = { [K in keyof T]: FlattenHandle<T[K]>; }; Mi pregunta es con respecto a <T se extiende desconocido []> y la precedencia del operador para typeof y [] .. ¿T se extiende desconocido? ¿O se está extendiendo unknown[] y, si es lo último, entonces el operador keyof se puede usar en el tipo Array ? Si es así, ¿mecanografiado toma esto como 'cualquier propiedad numérica de una matriz'? (también conocido como elemento de matriz).
Suponiendo que es el primero, y T se extiende desconocido, entonces, ¿cómo afecta el operador de matriz abreviada [] al operador typeof ? Solo por contexto, aquí está la definición de FlattenHandle :
export declare type FlattenHandle<T> = T extends HandleOr<infer U> ? U : never; Subpregunta: export declare : me tomé un descanso de TS durante medio año y ahora que regresé, los veo cada vez más. ¿Es una incorporación reciente? ¿Qué estamos tratando de decir aquí? ¿Que el tipo existe pero no se exportó en la fuente? Uno de los efectos de esta export declare es que mi IDE (PHPStorm) piensa que la clase ElementHandle existe, e incluso aparece en console.log, pero si Console.log(ElementHandle) obtendrá undefined :
export declare class ElementHandle<ElementType extends Node = Element> extends JSHandle<ElementType> { #private; // ...Gracias por tu ayuda.