ResizeObserver
lib.dom.ts
не включает объявления ResizeObserver API.
ResizeObserver - это вещь, которая получает некоторую поддержку в 2018 году, и я не нашел здесь упоминания о ResizeObserver.
Мое предложение соответствует этим рекомендациям:
Я думаю, что стандартные определения типов не поставляются с экспериментальными API-интерфейсами намеренно, особенно если поддержка браузеров почти отсутствует.
Сейчас мы генерируем библиотеку по адресу https://github.com/Microsoft/TSJS-lib-generator из стандартизованных веб-файлов IDL. Этот файл содержит список IDL, из которых мы генерируем библиотеку. Как только функция попадет, например, в IDL whatwg common dom interfaces , мы выполним синхронизацию и получим ее. Пройдет какое-то время (и, вероятно, поддержка браузера будет намного лучше), пока это не произойдет. Я бы порекомендовал пока просто добавить дополнительные объявления в ваш проект локально, так как я не думаю, что мы возьмем PR для отмены чего-то, что все еще экспериментально.
@weswigham полезно знать! Спасибо.
Я бы порекомендовал просто добавить дополнительные объявления локально в ваш проект.
Как правильно разместить эти объявления с точки зрения Typescript? С учетом кода resize-Observer-polyfill
Подойдет любой файл в вашем проекте. Многие люди рекомендуют отдельный globals.d.ts
или что-то подобное для подобных вещей.
@weswigham Это, кажется, нужно пересмотреть в наши дни?
Все основные браузеры поддерживают его с учетом вечнозеленой модели: Firefox (68-69), Safari (предварительная версия Tech Preview, которая будет доступна в следующем Safari, без сомнения, будет запущена вместе с MacOS Catalina), Chrome, Edge с Chromium и т. Д.
Также обновлены данные CaniUse по этому вопросу, IIRC: https://caniuse.com/#search = ResizeObserver
Эта проблема была помечена как "Вопрос" и в последнее время не наблюдалась. Он был автоматически закрыт на хозяйственные нужды. Если вы все еще ждете ответа, вопросы обычно лучше подходят для stackoverflow .
Это должно снова открыться; Я считаю, что причина его закрытия сомнительна.
Предпосылка о том, что интерфейс для ResizeObserver
API не добавляется, устарела и требует обновления.
/ cc @weswigham
@weswigham Есть поводу ?
По-прежнему отмечен как экспериментальный на mdn , поэтому нет. Когда спецификация перемещается из чернового состояния и принимается, связанный с ней IDL должен быть загружен TS и автоматически включен, но этого еще не произошло.
@weswigham MDN больше не считает этот API экспериментальным. В настоящее время появляется сообщение «Не удается найти имя ResizeObserver» при попытке использовать API с TypeScript 3.7.2.
Эту проблему следует открыть повторно, поскольку она больше не является экспериментальной и ее поддерживают все основные браузеры.
Согласно MDN, это все еще только часть проекта редактора, и не все основные браузеры его поддерживают.
Я полагаю, что задерживает Safari, который не будет поддерживать его, пока
2020 год входит в их дорожную карту на 2020 год; Поддержка Edge для него гарантирована
~ 15 января, когда Edge Chromium будет запущен для широкой публики с его
поддержка ResizeObserver.
В среду, 13 ноября 2019 г., в 01:00 Мартин Джонс [email protected]
написал:
Согласно MDN, это все еще только часть редакционного черновика, а не все
основные браузеры поддерживают его.-
Вы получили это, потому что оставили комментарий.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/microsoft/TypeScript/issues/28502?email_source=notifications&email_token=AAJKUOAOKN35DZEYT26M6VLQTO6ZVA5CNFSM4GDOB24KYY3PNVWWK3TUL52HS4DVMVREXG5CNFSM4GDOB24KYY3PNVWWK3TUL52HS4DFMVREX5
или отписаться
https://github.com/notifications/unsubscribe-auth/AAJKUODKUSZ7BORN3AUGNKLQTO6ZVANCNFSM4GDOB24A
.>
Кевин Лозандье
[email protected] [email protected]
Есть обновления здесь?
это одна из самых странных проблем, с которыми я столкнулся. я много слышал об этом API в прошлом году, чтобы он не был знаком с машинописным текстом
Почти 80% https://caniuse.com/#search = ResizeObserver
Пора добавить, он был отправлен в Safari в прошлом месяце. Это означает, что буквально все браузеры его поддерживают.
Вверх
@weswigham , создать проблему https://github.com/microsoft/TSJS-lib-generator/issues/908
Хотя типизация еще не объединена в машинописный текст, вы можете использовать пакет из npm с типами ResizeObserver: https://www.npmjs.com/package/@types/resize -observer-browser
Чтобы добавить к ответу @denexapp :
1) установите https://www.npmjs.com/package/@types/resize-observer-browser
2) /// <reference types="resize-observer-browser" />
вверху файла, где вам нужно его использовать.
Самый полезный комментарий
Пора добавить, он был отправлен в Safari в прошлом месяце. Это означает, что буквально все браузеры его поддерживают.