Typescript: Declarações da API ResizeObserver ausentes

Criado em 13 nov. 2018  Â·  21Comentários  Â·  Fonte: microsoft/TypeScript

Termos de pesquisa

ResizeObserver

Sugestão

lib.dom.ts não inclui declarações da API ResizeObserver.

Casos de Uso

ResizeObserver é algo que está recebendo suporte em 2018 e não encontrei nenhuma menção sobre ResizeObserver aqui.

Lista de controle

Minha sugestão atende a estas diretrizes:

  • [x] Esta não seria uma mudança significativa no código TypeScript / JavaScript existente
  • [x] Isso não mudaria o comportamento do tempo de execução do código JavaScript existente
  • [x] Isso pode ser implementado sem emitir JS diferentes com base nos tipos de expressões
  • [x] Este não é um recurso de tempo de execução (por exemplo, funcionalidade de biblioteca, sintaxe não ECMAScript com saída JavaScript, etc.)
  • [x] Este recurso está de acordo com o restante das Metas de Design do TypeScript .
lib.d.ts Question

Comentários muito úteis

É hora de adicioná-lo, ele foi enviado ao Safari no mês passado. Isso significa que literalmente todos os navegadores o suportam.

Todos 21 comentários

Acho que é intencional que as definições de tipo padrão não venham com APIs experimentais, especialmente se o suporte do navegador quase não existe.

Geramos a lib em https://github.com/Microsoft/TSJS-lib-generator a partir dos arquivos IDL da web padronizados agora. Este arquivo contém a lista de IDLs a partir dos quais geramos a lib. Assim que o recurso chegar, por exemplo, o IDL das interfaces de dom comum do whatwg, vamos sincronizar e tê-lo. Vai demorar algum tempo (e provavelmente um suporte de navegador muito melhor) até que isso aconteça. Eu recomendo apenas adicionar as declarações extras localmente ao seu projeto enquanto isso, pois não acho que tomaríamos um PR para uma substituição para algo que ainda é experimental.

@weswigham bom saber! Obrigado.

Eu recomendo apenas adicionar as declarações extras localmente ao seu projeto enquanto isso

Qual é o lugar correto para colocar essas declarações da perspectiva do Typecript? Levando em consideração o código de resize-observer-polyfill

Qualquer arquivo em seu projeto servirá. Muitas pessoas recomendariam um globals.d.ts separado ou algo semelhante para coisas como esta.

@weswigham Isso aparentemente deveria ser revisitado hoje em dia?

Todos os principais navegadores o suportam com o modelo perene em mente: Firefox (68-69), Safari (Tech Preview para disponibilidade no próximo Safari para lançamento junto com MacOS Catalina, sem dúvida), Chrome, Edge com Chromium e assim por diante.

Também há dados do CaniUse atualizados sobre o assunto agora, IIRC: https://caniuse.com/#search = ResizeObserver

Este problema foi marcado como 'Pergunta' e não teve nenhuma atividade recente. Ele foi fechado automaticamente para fins de manutenção. Se você ainda está esperando uma resposta, as perguntas geralmente são mais adequadas para o stackoverflow .

Isso deve reabrir; Sou de opinião que o motivo pelo qual está fechado é questionável.

A premissa de não adicionar interface para ResizeObserver API é obsoleta e precisa de uma atualização.

/ cc @weswigham

@weswigham Alguma atualização sobre isso?

Ainda marcado como experimental no mdn , então não. Quando a especificação é movida para fora do estado de rascunho e aceita, seu IDL associado deve ser puxado pelo TS e incluído automaticamente, mas isso ainda não aconteceu.

@weswigham MDN não lista mais esta API como experimental. Atualmente obtendo "Não é possível encontrar o nome 'ResizeObserver'" ao tentar usar a API com TypeScript 3.7.2

Este problema deve ser reaberto, pois não é mais experimental e todos os principais navegadores o suportam.

De acordo com o MDN, ele ainda é apenas parte do Rascunho do Editor e nem todos os principais navegadores o suportam.

Imagino que o que está atrasando as coisas é o Safari, que não suportará até
2020 estando em seu roteiro para 2020; Suporte de borda para isso é garantido
~ 15 de janeiro, quando o Edge Chromium será lançado para o público com
suporte para ResizeObserver.

Na quarta-feira, 13 de novembro de 2019 à 1h Martin Johns [email protected]
escrevi:

De acordo com o MDN, ainda é apenas parte do Rascunho do Editor, e não todos
os principais navegadores o suportam.

-
Você está recebendo isso porque comentou.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/microsoft/TypeScript/issues/28502?email_source=notifications&email_token=AAJKUOAOKN35DZEYT26M6VLQTO6ZVA5CNFSM4GDOB24KYY3PNVWWK3TUL52LHS4DFVREXG46-6166ZVA5CNFSM4GDOB24KYY3PNVWWK3TUL52LHS4DFVREXGH456BDZ63WORC5DNVREXTZ63VME3DZ63-ZM3DZ63-ZVMeq .
ou cancelar
https://github.com/notifications/unsubscribe-auth/AAJKUODKUSZ7BORN3AUGNKLQTO6ZVANCNFSM4GDOB24A
.

>

Kevin Lozandier
[email protected] [email protected]

Alguma atualização aqui?

esse é um dos problemas mais bizarros que encontrei. Eu ouvi muito sobre essa API no ano passado para que ela não seja familiarizada com a escrita

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

É hora de adicioná-lo, ele foi enviado ao Safari no mês passado. Isso significa que literalmente todos os navegadores o suportam.

Acima

Embora as tipificações ainda não tenham sido mescladas com o texto digitado, você pode usar um pacote de npm com as tipificações ResizeObserver: https://www.npmjs.com/package/@types/resize -observer-browser

Para adicionar à resposta de @denexapp :

1) instale https://www.npmjs.com/package/@types/resize-observer-browser
2) /// <reference types="resize-observer-browser" /> no topo do arquivo onde você precisa usá-lo.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

narutomxc picture narutomxc  Â·  3Comentários

seanzer picture seanzer  Â·  3Comentários

Skuriles picture Skuriles  Â·  3Comentários

blmarket picture blmarket  Â·  3Comentários

jumpinjackie picture jumpinjackie  Â·  3Comentários