Параметры Typescript получают типы для методов, которые допускают один или два аргумента, например, Element.scrollBy

#typescript

#typescript

Вопрос:

Например, как я могу получить параметр options метода scrollBy()?

 Parameters<Element["scrollTo"]>
 

возвращает только [x: number, y: number] , а не options?: ScrollToOptions

 scrollTo(options?: ScrollToOptions): void;
scrollTo(x: number, y: number): void;
 

Ответ №1:

Пожалуйста, ознакомьтесь с этой проблемой и документами TS:

При выводе из типа с несколькими сигнатурами вызовов (например, типа перегруженной функции), выводы делаются из последней сигнатуры (которая, по-видимому, является наиболее разрешающим всеобъемлющим случаем). Невозможно выполнить разрешение перегрузки на основе списка типов аргументов.

Parameters всегда возвращает подпись последнего вызова

В этом случае стоит использовать :

 const foo:Element["scrollTo"]=(...args:unknown[])=>{

}
 

введите описание изображения здесь