Typescript: Déclarations d'API ResizeObserver manquantes

Créé le 13 nov. 2018  ·  21Commentaires  ·  Source: microsoft/TypeScript

Termes de recherche

ResizeObserver

Suggestion

lib.dom.ts n'inclut pas les déclarations d'API ResizeObserver.

Cas d'utilisation

ResizeObserver est une chose qui reçoit un certain soutien en 2018 et je n'ai trouvé aucune mention de ResizeObserver ici.

Liste de contrôle

Ma suggestion respecte ces directives:

  • [x] Ce ne serait pas un changement radical dans le code TypeScript / JavaScript existant
  • [x] Cela ne changerait pas le comportement d'exécution du code JavaScript existant
  • [x] Cela pourrait être implémenté sans émettre différents JS en fonction des types d'expressions
  • [x] Ce n'est pas une fonctionnalité d'exécution (par exemple, fonctionnalité de bibliothèque, syntaxe non ECMAScript avec sortie JavaScript, etc.)
  • [x] Cette fonctionnalité serait en accord avec le reste des objectifs de conception de
lib.d.ts Question

Commentaire le plus utile

Il est temps de l'ajouter, il a été livré à Safari le mois dernier. Cela signifie littéralement que tous les navigateurs le prennent en charge.

Tous les 21 commentaires

Je pense qu'il est intentionnel que les définitions de type standard ne soient pas fournies avec des API expérimentales, en particulier si la prise en charge des navigateurs n'existe presque pas.

Nous générons maintenant la bibliothèque à l' adresse https://github.com/Microsoft/TSJS-lib-generator à partir des fichiers IDL Web standardisés. Ce fichier contient la liste des IDL à partir desquels nous générons la bibliothèque. Une fois que la fonctionnalité arrive, par exemple, l'IDL des interfaces dom common whatwg, nous la synchroniserons et l'aurons. Cela prendra du temps (et probablement une meilleure prise en charge du navigateur) jusqu'à ce que cela se produise. Je recommanderais simplement d'ajouter les déclarations supplémentaires localement à votre projet en attendant, car je ne pense pas que nous prendrions un PR pour remplacer quelque chose qui est encore expérimental.

@weswigham bon à savoir! Je vous remercie.

Je recommanderais simplement d'ajouter les déclarations supplémentaires localement à votre projet en attendant

Quel est le bon endroit pour placer ces déclarations du point de vue Typescript? Prise en compte du code de resize-observer-polyfill

Tout fichier de votre projet fera l'affaire. Beaucoup de gens recommanderaient un globals.d.ts séparé ou similaire pour des choses comme celle-ci.

@weswigham Cela devrait apparemment être revisité ces jours-ci?

Tous les principaux navigateurs le prennent en charge avec le modèle Evergreen à l'esprit: Firefox (68-69), Safari (Tech Preview pour la disponibilité dans le prochain Safari à lancer avec MacOS Catalina sans aucun doute), Chrome, Edge w / Chromium, etc.

Il existe également des données CaniUse mises à jour sur le sujet maintenant, IIRC: https://caniuse.com/#search = ResizeObserver

Ce problème a été marqué comme "Question" et n'a connu aucune activité récente. Il a été automatiquement fermé à des fins d'entretien ménager. Si vous attendez toujours une réponse, les questions sont généralement mieux adaptées au stackoverflow .

Cela devrait rouvrir; Je suis d'avis que la raison pour laquelle il est fermé est discutable.

Le principe de ne pas ajouter d'interface pour l'API ResizeObserver est obsolète et nécessite une mise à jour.

/ cc @weswigham

@weswigham Une mise à jour à ce sujet?

Toujours marqué comme expérimental sur mdn , donc non. Lorsque la spécification est déplacée hors de l'état brouillon et acceptée, son IDL associé devrait être récupéré par TS et automatiquement inclus, mais cela ne s'est pas encore produit.

@weswigham MDN ne répertorie plus cette API comme expérimentale. Obtention actuelle de "Impossible de trouver le nom 'ResizeObserver'" lors de la tentative d'utilisation de l'API avec TypeScript 3.7.2

Ce problème devrait être rouvert car il n'est plus expérimental et tous les principaux navigateurs le prennent en charge.

Selon MDN, il ne s'agit encore que d'une partie du brouillon d'un éditeur, et tous les principaux navigateurs ne le prennent pas en charge.

J'imagine que ce qui retarde les choses, c'est Safari qui ne le supportera pas avant
2020 étant sur leur feuille de route 2020; Le support Edge est garanti
~ 15 janvier, date à laquelle Edge Chromium doit être lancé pour le public avec
prise en charge de ResizeObserver.

Le mercredi 13 novembre 2019 à 01h00, Martin Johns [email protected]
a écrit:

Selon MDN, ce n'est encore qu'une partie du brouillon d'un éditeur, et pas tous
les principaux navigateurs le prennent en charge.

-
Vous recevez ceci parce que vous avez commenté.
Répondez directement à cet e-mail, affichez-le sur GitHub
https://github.com/microsoft/TypeScript/issues/28502?email_source=notifications&email_token=AAJKUOAOKN35DZEYT26M6VLQTO6ZVA5CNFSM4GDOB24KYY3PNVWWK3TUL52HS4VMFVOMXG678WWWK3TUL52HS4VFVOMXG678WWWK3TUL52HS4VFVOMX678WWWK3TUL52HS4DFVOMXG678WWWK3TUL52HS4VFVom
ou se désinscrire
https://github.com/notifications/unsubscribe-auth/AAJKUODKUSZ7BORN3AUGNKLQTO6ZVANCNFSM4GDOB24A
.

>

Kevin Lozandier
[email protected] [email protected]

Des mises à jour ici?

c'est l'un des problèmes les plus bizarres que j'ai rencontrés. J'ai beaucoup entendu parler de cette API l'année dernière pour qu'elle ne soit pas familière par dactylographié

Près de 80% https://caniuse.com/#search = ResizeObserver

Il est temps de l'ajouter, il a été livré à Safari le mois dernier. Cela signifie littéralement que tous les navigateurs le prennent en charge.

Vers le haut

Bien que les typages ne soient pas encore fusionnés dans dactylographié, vous pouvez utiliser un package de npm avec des typages ResizeObserver: https://www.npmjs.com/package/@types/resize -observer-browser

Pour ajouter à la réponse de

1) installez https://www.npmjs.com/package/@types/resize-observer-browser
2) /// <reference types="resize-observer-browser" /> en haut du fichier où vous devez l'utiliser.

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

jbondc picture jbondc  ·  3Commentaires

MartynasZilinskas picture MartynasZilinskas  ·  3Commentaires

manekinekko picture manekinekko  ·  3Commentaires

blendsdk picture blendsdk  ·  3Commentaires

Roam-Cooper picture Roam-Cooper  ·  3Commentaires