#jquery #typescript
#jquery #typescript
Вопрос:
Использование $(document)
в TypeScript выдает ошибку Supplied parameters do not match any signature of call target.
Я использую TypeScript 3.1, jQuery 3.3.1 и @types / jQuery 3.3.29.
$(document)
Устарел, и я должен использовать что-то другое, или это ошибка в файле определения типа?
РЕДАКТИРОВАТЬ: все тело этого файла TypeScript в основном «Привет, мир!».
$(document).ready(() => {
console.log("Hello World!");
});
Комментарии:
1. Вызываете ли вы какую-либо функцию с параметрами?
2. попробуйте:
jQuery(document).ready(()
3.
jQuery(document)
выдает ту же ошибку.
Ответ №1:
$(document).ready(handler)
имеет два функционально эквивалентных варианта, первый — $().ready(handler)
, а второй — прямой $(handler)
.
В jQuery 3.0 первые два были устаревшими, остался только $(handler)
. Официальное обоснование таково:
Это связано с тем, что выбор не влияет на поведение
.ready()
метода, что неэффективно и может привести к неверным предположениям о поведении метода.
Файлы определений TypeScript просто не включают устаревший синтаксис, который все еще работает ради обратной совместимости. Ваш скрипт должен выглядеть следующим образом:
$(() => {
console.log("Hello World!");
});