You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
With TypeScript 4.4, we coordinated some pretty fundamental infrastructure work to prepare for the version of dom.d.ts with the future of the generator repo. This work resulted in two note-worthy items:
The dom.d.ts files typically accessed inside TypeScript are now alsodeployed to @types/web starting with version 0.0.1 which corresponds to the version of libdom.d.ts in TypeScript 4.3. This means an update to TypeScript 4.4 does not mean you have to update all of your web .d.ts files.
The name change is to more accurately reflect the scope of the APIs, for a long time the file has provided much more APIs than just the DOM and @types/web reflects that. If you're interested in switching to use @types/web, there are instructions in the npm README.
The 4.4 dom.d.ts file which is included with TypeScript includes quite a lot of changes, with a lot of APIs which have been marked as deleted by the web standards committees. You can see the full list in this issue
We've been testing these changes with DefinitelyTyped, and have been individually rolling back changes which we think are a bit too breaking, this is more of an art than a science however. If you think we should rollback a particular change we're open to discussing change in this issue or the dom-lib-generator channel in the TypeScript Community Discord
We plan to have thorough support for replacing lib.dom.d.ts with @types/web in 4.5 with microsoft/TypeScript#44795
Reacted by Daniel Rosenwasser, Mattias Buelens, Kirill Groshkov, Kagami Sascha Rosylight, LeoniePhiline, Erik, Hana Joo, Jeff Zou, Albin Jacobsson, Naresh and 7 more
I tried upgrading from TS 4.3.5 to 4.4.2 today and encountered two issues:
HTMLDialogElement went missing (as a value, not as a type). This is noted in the list above. But why? It's supported by Chrome, Edge, and Opera, and by Firefox behind a flag. The type is still present, as it is needed to represent <dialog> elements. I can write declare var HTMLDialogElement: HTMLDialogElement; to allow using it as a value, but then element instanceof HTMLDialogElement no longer works as a type guard.
HTMLInputElement.autofocus was removed. This is not noted in the list above. This seems like a bug since it is supported in every browser. The MDN page's browser compatibility section just refers to the page for the global autofocus attribute where it is noted as fully supported in Chrome, Edge, and Opera, and supported everywhere on several elements including HTMLInputElement. In my case, I have a custom JSX implementation, and I basically have to patch the HTMLInputElement type to work around this.
It would be great if these changes could be reverted.
Reacted by rouden, Wesley Smits, Till Schweneker, u-sho (Shouhei Uechi), South Drifter, Jarrod Davis, Mu-An Chiou, Matteus Legat and David Sautter
HTMLDialogElement went missing (as a value, not as a type). This is noted in the list above. But why? It's supported by Chrome, Edge, and Opera, and by Firefox behind a flag. The type is still present, as it is needed to represent <dialog> elements. I can write declare var HTMLDialogElement: HTMLDialogElement; to allow using it as a value, but then element instanceof HTMLDialogElement no longer works as a type guard.
HTMLInputElement.autofocus was removed. This is not noted in the list above. This seems like a bug since it is supported in every browser. The MDN page's browser compatibility section just refers to the page for the global autofocus attribute where it is noted as fully supported in Chrome, Edge, and Opera, and supported everywhere on several elements including HTMLInputElement. In my case, I have a custom JSX implementation, and I basically have to patch the HTMLInputElement type to work around this.
Activity
orta commentedon Jun 27, 2021
High Level Changes from 4.3 to 4.4
dom.d.tsNew interfaces
BlobEventCSSAnimationCSSCounterStyleRuleCSSTransitionClipboardItemFileSystemFileSystemDirectoryEntryFileSystemDirectoryReaderFileSystemEntryFileSystemFileEntryFontFaceFontFaceSetFontFaceSetLoadEventFormDataEventIdleDeadlineMathMLElementMediaCapabilitiesMediaMetadataMediaRecorderMediaRecorderErrorEventMediaSessionNetworkInformationPerformanceEventTimingPerformancePaintTimingPictureInPictureWindowRemotePlaybackSVGMPathElementSVGSetElementSubmitEventRemoved interfaces
ApplicationCacheBhxBrowserCaretPositionClientRectClientRectListCryptoKeyPairDOMErrorDOMSettableTokenListDataCueDeferredPermissionRequestDeviceAccelerationDeviceRotationRateExtensionScriptApisFocusNavigationEventGamepadPoseHTMLAppletElementHTMLDialogElementHTMLTableDataCellElementHTMLTableHeaderCellElementInputDeviceInfoListeningStateChangedEventMSAssertionMSBlobBuilderMSFIDOCredentialAssertionMSFIDOSignatureMSFIDOSignatureAssertionMSGestureMSGraphicsTrustMSInputMethodContextMSMediaKeyErrorMSMediaKeySessionMSMediaKeysMSStreamMediaStreamErrorMediaStreamErrorEventMediaStreamEventMediaStreamTrackAudioSourceNodeNavigationPreloadManagerNodeFilterOffscreenCanvasOffscreenCanvasRenderingContext2DOverflowEventPerfWidgetExternalPermissionRequestPermissionRequestedEventRTCDtlsTransportStateChangedEventRTCDtmfSenderRTCErrorRTCErrorEventRTCIceCandidatePairChangedEventRTCIceGathererRTCIceGathererEventRTCIceTransportStateChangedEventRTCIdentityAssertionRTCSctpTransportRTCSrtpSdesTransportRTCSsrcConflictEventRTCStatsProviderRandomSourceSVGCursorElementSVGElementInstanceSVGElementInstanceListSVGPathSegSVGPathSegArcAbsSVGPathSegArcRelSVGPathSegClosePathSVGPathSegCurvetoCubicAbsSVGPathSegCurvetoCubicRelSVGPathSegCurvetoCubicSmoothAbsSVGPathSegCurvetoCubicSmoothRelSVGPathSegCurvetoQuadraticAbsSVGPathSegCurvetoQuadraticRelSVGPathSegCurvetoQuadraticSmoothAbsSVGPathSegCurvetoQuadraticSmoothRelSVGPathSegLinetoAbsSVGPathSegLinetoHorizontalAbsSVGPathSegLinetoHorizontalRelSVGPathSegLinetoRelSVGPathSegLinetoVerticalAbsSVGPathSegLinetoVerticalRelSVGPathSegListSVGPathSegMovetoAbsSVGPathSegMovetoRelSVGZoomEventServiceUIFrameContextSpeechGrammarSpeechGrammarListSpeechRecognitionSpeechRecognitionErrorEventSpeechRecognitionEventStyleMediaSyncManagerTextEventVRDisplayVRDisplayCapabilitiesVRDisplayEventVREyeParametersVRFieldOfViewVRFrameDataVRPoseWebKitPointwebkitRTCPeerConnectionModified
onremove,replaceState,commitStyles,persistoutputLatency,createMediaStreamTrackSourceappearance,aspectRatio,backgroundBlendMode,borderBlock,borderBlockColor,borderBlockStyle,borderBlockWidth,borderEndEndRadius,borderEndStartRadius,borderInline,borderInlineColor,borderInlineStyle,borderInlineWidth,borderStartEndRadius,borderStartStartRadius,colorScheme,contain,counterSet,fontOpticalSizing,fontVariantAlternates,fontVariationSettings,inset,insetBlock,insetBlockEnd,insetBlockStart,insetInline,insetInlineEnd,insetInlineStart,isolation,marginBlock,marginInline,mixBlendMode,offset,offsetAnchor,offsetDistance,offsetPath,offsetRotate,paddingBlock,paddingInline,scrollMargin,scrollMarginBlock,scrollMarginBlockEnd,scrollMarginBlockStart,scrollMarginBottom,scrollMarginInline,scrollMarginInlineEnd,scrollMarginInlineStart,scrollMarginLeft,scrollMarginRight,scrollMarginTop,scrollPadding,scrollPaddingBlock,scrollPaddingBlockEnd,scrollPaddingBlockStart,scrollPaddingBottom,scrollPaddingInline,scrollPaddingInlineEnd,scrollPaddingInlineStart,scrollPaddingLeft,scrollPaddingRight,scrollPaddingTop,scrollSnapAlign,scrollSnapStop,scrollSnapType,shapeImageThreshold,shapeMargin,shapeOutside,textDecorationSkipInk,textDecorationThickness,textUnderlineOffsetglyphOrientationVertical,maskComposite,maskImage,maskPosition,maskRepeat,maskSize,rubyAlign,textJustify,webkitTapHighlightColor,webkitTextSizeAdjust,zoomgetContextAttributesread,writeinitCompositionEventitempictureInPictureEnabled,rootElement,exitPictureInPicture,hasStorageAccess,requestStorageAccesscaretPositionFromPoint,getAnimationspartmsGetRegionContentwebkitRelativePathhand,posepulsecaptureStreamtransferControlToOffscreenouterTextrequestSubmitallowPaymentRequestcapture,webkitEntries,webkitdirectoryonbounce,onfinish,onstartdisableRemotePlayback,remoteformdisablePictureInPicture,onenterpictureinpicture,onleavepictureinpicture,requestPictureInPicturerequestdatabasescommitdataTransfer,getTargetRangesinitKeyboardEventcharpseudoElementgetDisplayMediacontentHintinitMessageEventmediaCapabilities,mediaSessionactiveVRDisplays,msManipulationViewsEnabled,msMaxTouchPoints,msPointerEnabled,getUserMedia,getVRDisplays,msLaunchUri,msSaveBlob,msSaveOrOpenBlobnamespaceURIactions,badge,image,renotify,requireInteraction,silent,timestamp,vibrateonshippingaddresschange,onshippingoptionchange,shippingAddress,shippingOption,shippingTypeonpayerdetailchange,payerEmail,payerName,payerPhone,shippingAddress,shippingOption,addEventListener,removeEventListenerdetaildetailexpirationTimeuserVisibleOnlyiceTransport,onerror,getRemoteCertificatesaddressongatheringstatechange,onselectedcandidatepairchange,onstatechange,role,getLocalCandidates,getLocalParameters,getRemoteCandidates,getRemoteParameters,getSelectedCandidatePair,addEventListener,removeEventListeneridpErrorInfo,idpLoginUrl,peerIdentity,sctp,getIdentityAssertion,setIdentityProvidersetCodecPreferencesforEachisHistoryNavigation,isReloadNavigationtrailerrel,relListbeginElement,beginElementAt,endElement,endElementAtpathSegList,getPointAtLength,getTotalLengthonunload,onzoom,getComputedStylelengthviewTargetdisposition,samplenavigationPreload,syncdelegatesFocuschangeTypeinitStorageEventfontBoundingBoxAscent,fontBoundingBoxDescentaltitudeAngle,azimuthAngle,touchTypeinitUIEventcorruptedVideoFramescancelIdleCallback,requestIdleCallbackapplicationCache,defaultStatus,doNotTrack,msContentScript,offscreenBuffering,oncompassneedscalibration,ondeviceorientationabsolute,ongamepadconnected,ongamepaddisconnected,onmousewheel,onreadystatechange,onvrdisplayactivate,onvrdisplayblur,onvrdisplayconnect,onvrdisplaydeactivate,onvrdisplaydisconnect,onvrdisplaypresentchange,styleMedia,departFocus,getMatchedCSSRules,msWriteProfilerMark,webkitCancelAnimationFrame,webkitConvertPointFromNodeToPage,webkitConvertPointFromPageToNode,webkitRequestAnimationFramecloseNon-value types
signalcolorSpace,willReadFrequentlystartTimeplaybackRatedataTransfer,targetRangespseudoElementencryptionSchemepreferCurrentTabcursor,displaySurface,logicalSurfacesuppressLocalAudioPlaybackautoGainControl,noiseSuppression,resizeModerestrictOwnAudioautoGainControl,channelCount,latency,noiseSuppression,resizeModesuppressLocalAudioPlaybackautoGainControl,channelCount,latency,noiseSuppression,resizeModeplaybackRateshippingOptionserror,payerErrors,shippingAddressErrorspayer,shippingAddressbytesDiscardedOnSend,circuitBreakerTriggerCount,consentExpiredTimestamp,consentRequestsSent,currentRtt,firstRequestTimestamp,lastPacketReceivedTimestamp,lastPacketSentTimestamp,lastRequestTimestamp,lastResponseTimestamp,packetsDiscardedOnSend,packetsReceived,packetsSent,priority,retransmissionsReceived,retransmissionsSent,totalRtterrorTextstatusTextprioritydegradationPreferencevoiceActivityFlagiceRole,packetsReceived,packetsSent,selectedCandidatePairChanges,tlsGroupdisposition,sampleslotAssignmentfileswhich"remove"scrollPathIntoViewpictureInPictureElement,getAnimationscaretPositionFromPoint,caretRangeFromPoint,elementFromPoint,elementsFromPoint,getSelection"formdata","webkitanimationend","webkitanimationiteration","webkitanimationstart","webkittransitionend""cancel","dragexit"onformdata,onwebkitanimationend,onwebkitanimationiteration,onwebkitanimationstart,onwebkittransitionendoncancel,ondragexit,onsecuritypolicyviolationunregisterProtocolHandlerreplaceChildren"shippingaddresschange","shippingoptionchange""error""SVGUnload","SVGZoom""abort","afterprint","beforeprint","beforeunload","blur","canplay","canplaythrough","change","click","compassneedscalibration","contextmenu","dblclick","deviceorientationabsolute","drag","dragend","dragenter","dragleave","dragover","dragstart","drop","durationchange","emptied","ended","error","focus","hashchange","input","invalid","keydown","keypress","keyup","load","loadeddata","loadedmetadata","loadstart","message","mousedown","mouseenter","mouseleave","mousemove","mouseout","mouseover","mouseup","mousewheel","offline","online","pagehide","pageshow","pause","play","playing","popstate","progress","ratechange","readystatechange","reset","resize","scroll","seeked","seeking","select","stalled","storage","submit","suspend","timeupdate","unload","volumechange","vrdisplayactivate","vrdisplayblur","vrdisplayconnect","vrdisplaydeactivate","vrdisplaydisconnect","vrdisplaypresentchange","waiting""gamepadconnected","gamepaddisconnected"ongamepadconnected,ongamepaddisconnectedcrossOriginIsolatedmemory,exception"applet""animate","animateMotion","animateTransform","feDropShadow","mpath","set"index.iterable.d.tsNon-value types
vibrateh-joo commentedon Jul 16, 2021
The following four types also seems to be removed, but are not mentioned in the above list :
orta commentedon Aug 11, 2021
@types/web@0.0.16should be the version which is shipped with TS 4.4rcJack-Works commentedon Aug 14, 2021
Found undocumented breaking change:
PermissionNamehas less union members than 4.3 which cause the following code type error.See: https://w3c.github.io/permissions/#enumdef-permissionname
Jack-Works commentedon Aug 14, 2021
Breaking change documented wrong:
CryptoKeyPairdidn't get removed.Jack-Works commentedon Aug 14, 2021
ClipboardItemconstructor type is wrong. According to MDN, it should bestring | Blob | Promise<string | Blob>.In 4.3 it is
string | Blob, in 4.4 it isPromise<string | Blob>which is wrong.saschanaz commentedon Aug 14, 2021
Camera permission is at risk because of lack of multiple implementation, so I guess the work item is to document the removal.
#1102
HolgerJeromin commentedon Aug 27, 2021
I want to add (deprecated: ref #884)
mouseWheelEventto the list of removed typesbusches commentedon Aug 27, 2021
Undocumented change
msSaveBlobwas removed fromwindow.navigatorin TypeScript 4.4.2.IceCreamYou commentedon Aug 27, 2021
I tried upgrading from TS 4.3.5 to 4.4.2 today and encountered two issues:
HTMLDialogElementwent missing (as a value, not as a type). This is noted in the list above. But why? It's supported by Chrome, Edge, and Opera, and by Firefox behind a flag. The type is still present, as it is needed to represent<dialog>elements. I can writedeclare var HTMLDialogElement: HTMLDialogElement;to allow using it as a value, but thenelement instanceof HTMLDialogElementno longer works as a type guard.HTMLInputElement.autofocuswas removed. This is not noted in the list above. This seems like a bug since it is supported in every browser. The MDN page's browser compatibility section just refers to the page for the global autofocus attribute where it is noted as fully supported in Chrome, Edge, and Opera, and supported everywhere on several elements including HTMLInputElement. In my case, I have a custom JSX implementation, and I basically have to patch theHTMLInputElementtype to work around this.It would be great if these changes could be reverted.
saschanaz commentedon Aug 27, 2021
Chrome/Edge/Opera all uses the same engine Blink and no other engine supports it without a flag, that is why. Please refer to https://github.com/microsoft/TypeScript-DOM-lib-generator#when-the-type-is-missing for the reasoning here.
Fixed by #1111
IceCreamYou commentedon Aug 28, 2021
Thanks, I read that section of the README but it's not clear about flagged features, plus
<dialog>is enabled by default in Firefox Nightly.Juraj-Masiar commentedon Aug 30, 2021
Why was
hashchangeevent removed? Now there is onlyEventwhich doesn't havenewURLproperty:https://www.typescriptlang.org/play?ts=4.4.2#code/O4SwdgJg9sB0CGEIFEBuBTMAXAMiAzlpugE4AUA5ABbz5UDGNYA5uhQDQAEZ6AXJwAlaVAMJNWaTFgCUnALwA+TgG90sMOmABVAEo4AvtKA
saschanaz commentedon Aug 30, 2021
Fixed by #1104
kindlich commentedon Aug 30, 2021
Location#reload(forcedReload: boolean): voidwas removed as well.Was that intended?
58 remaining items
tamuratak commentedon Jun 5, 2022
They MUST NOT be removed. They are actually defined in the specification.
See https://w3c.github.io/touch-events/#touch-interface
saschanaz commentedon Jun 5, 2022
Please check README. (And MDN browser compatibility)
tamuratak commentedon Jun 5, 2022
I see. You should edit the following too:
TypeScript-DOM-lib-generator/baselines/dom.generated.d.ts
Lines 1726 to 1742 in 6683182
Upgrade all `devDependencies` (#434)
TechQuery commentedon Dec 14, 2022
Orta Therox (@orta) I find a Type bug of Font Face API: microsoft/TypeScript#51885
dev(renderer): use lib.dom.d.ts in @types/web
HolgerJeromin commentedon Sep 4, 2024
I dont this this issue still needs to stay open...
saschanaz commentedon Sep 4, 2024
Yeah, time to close this.
@github-actions close
saschanaz commentedon Sep 4, 2024
Eh. Error: Resource not accessible by integration. Jake Bailey (@jakebailey), can you check? Thanks!
jakebailey commentedon Sep 4, 2024
Fixed in #1799; didn't realize the codeowners system could also close issues.
saschanaz commentedon Sep 4, 2024
Thank you!
@github-actions close
github-actions commentedon Sep 4, 2024
Closing because Kagami Sascha Rosylight (@saschanaz) is one of the code-owners of this repository.
Upgrade all `devDependencies` (#434)
Upgrade to TypeScript 4.4.2 (#1762)