Typescript: Faltan las declaraciones de la API ResizeObserver

Creado en 13 nov. 2018  ·  21Comentarios  ·  Fuente: microsoft/TypeScript

Términos de búsqueda

ResizeObserver

Sugerencia

lib.dom.ts no incluye declaraciones de API ResizeObserver.

Casos de uso

ResizeObserver es algo que está recibiendo cierto soporte en 2018 y no he encontrado ninguna mención sobre ResizeObserver aquí.

Lista de Verificación

Mi sugerencia cumple con estas pautas:

  • [x] Este no sería un cambio importante en el código TypeScript / JavaScript existente
  • [x] Esto no cambiaría el comportamiento en tiempo de ejecución del código JavaScript existente.
  • [x] Esto podría implementarse sin emitir diferentes JS según los tipos de expresiones
  • [x] Esta no es una función de tiempo de ejecución (p. ej., funcionalidad de biblioteca, sintaxis que no es ECMAScript con salida de JavaScript, etc.)
  • [x] Esta característica estaría de acuerdo con el resto de los objetivos de diseño de
lib.d.ts Question

Comentario más útil

Es hora de agregarlo, se envió a Safari el mes pasado. Esto significa que literalmente todos los navegadores lo admiten.

Todos 21 comentarios

Creo que es intencional que las definiciones de tipo estándar no vengan con API experimentales, especialmente si la compatibilidad con el navegador casi no existe.

Generamos la biblioteca en https://github.com/Microsoft/TSJS-lib-generator a partir de los archivos IDL web estandarizados ahora. Este archivo contiene la lista de IDL desde la que generamos la biblioteca. Una vez que la función se activa, por ejemplo, el IDL de las interfaces dom comunes whatwg, lo sincronizaremos y lo tendremos. Pasará algún tiempo (y probablemente mucho mejor soporte del navegador) hasta que eso suceda. Mientras tanto, recomendaría simplemente agregar las declaraciones adicionales localmente a su proyecto, ya que no creo que tomemos un PR para anular algo que aún es experimental.

@weswigham ¡es bueno saberlo! Gracias.

Mientras tanto, recomendaría agregar las declaraciones adicionales localmente a su proyecto

¿Cuál es el lugar correcto para colocar estas declaraciones desde la perspectiva de TypeScript? Teniendo en cuenta el código de resize-observer-polyfill

Cualquier archivo de su proyecto servirá. Mucha gente recomendaría un globals.d.ts separado o similar para cosas como esta.

@weswigham ¿ Esto aparentemente debería

Todos los navegadores principales lo admiten con el modelo de hoja perenne en mente: Firefox (68-69), Safari (Tech Preview para disponibilidad en el próximo Safari para lanzar junto con MacOS Catalina sin duda), Chrome, Edge con Chromium, y así sucesivamente.

También hay datos actualizados de CaniUse sobre el asunto ahora, IIRC: https://caniuse.com/#search = ResizeObserver

Este problema se ha marcado como 'Pregunta' y no ha tenido actividad reciente. Se ha cerrado automáticamente por motivos de limpieza. Si todavía está esperando una respuesta, las preguntas suelen ser más adecuadas para stackoverflow .

Esto debería reabrirse; Soy de la opinión de que la razón por la que está cerrado es cuestionable.

La premisa de no agregar interfaz para ResizeObserver API es obsoleta y necesita una actualización.

/ cc @weswigham

@weswigham ¿ Alguna actualización sobre esto?

Todavía marcado como experimental en mdn , así que no. Cuando la especificación se mueve fuera del estado de borrador y se acepta, su IDL asociado debería ser extraído por TS e incluido automáticamente, pero eso aún no ha sucedido.

@weswigham MDN ya no enumera esta API como experimental. Actualmente aparece "No se puede encontrar el nombre 'ResizeObserver'" cuando se intenta utilizar la API con TypeScript 3.7.2

Este problema debe reabrirse ya que ya no es experimental y todos los navegadores principales lo admiten.

Según MDN, sigue siendo solo una parte del borrador del editor y no todos los navegadores principales lo admiten.

Me imagino que lo que está frenando las cosas es Safari, que no lo admitirá hasta
2020 está en su hoja de ruta 2020; El soporte de borde está garantizado
~ 15 de enero, cuando Edge Chromium se lanzará para el público con su
soporte para ResizeObserver.

El miércoles 13 de noviembre de 2019 a la 1:00 a.m. Martin Johns [email protected]
escribió:

Según MDN, sigue siendo solo una parte del borrador del editor, y no todos
los principales navegadores lo admiten.

-
Estás recibiendo esto porque comentaste.
Responda a este correo electrónico directamente, véalo en GitHub
https://github.com/microsoft/TypeScript/issues/28502?email_source=notifications&email_token=AAJKUOAOKN35DZEYT26M6VLQTO6ZVA5CNFSM4GDOB24KYY3PNVWWK3TUL52HS4DFVREXG43WWMVED5com ,
o darse de baja
https://github.com/notifications/unsubscribe-auth/AAJKUODKUSZ7BORN3AUGNKLQTO6ZVANCNFSM4GDOB24A
.

>

Kevin Lozandier
[email protected] [email protected]

¿Alguna actualización aquí?

ese es uno de los problemas más extraños que encontré. He escuchado mucho sobre esta API el año pasado para que no me resulte familiar por mecanografiado

Casi al 80% https://caniuse.com/#search = ResizeObserver

Es hora de agregarlo, se envió a Safari el mes pasado. Esto significa que literalmente todos los navegadores lo admiten.

Arriba

Si bien los mecanografiados aún no se han fusionado en mecanografiado, puede utilizar un paquete de npm con los mecanografiados ResizeObserver: https://www.npmjs.com/package/@types/resize -observer-browser

Para agregar a la respuesta de @denexapp :

1) instale https://www.npmjs.com/package/@types/resize-observer-browser
2) /// <reference types="resize-observer-browser" /> en la parte superior del archivo donde necesita usarlo.

¿Fue útil esta página
0 / 5 - 0 calificaciones