document.startViewTransition的TypeScript定义位置及报错排查咨询
关于TypeScript中
document.startViewTransition类型错误的问题 为什么会出现这个报错?
startViewTransition属于View Transitions API,是较新的浏览器API。TypeScript的标准DOM类型定义不会默认覆盖所有最新浏览器特性——只有当你使用的TypeScript版本足够新,其自带的DOM标准库中已收录该API的类型声明时,才能被正常识别。
你添加lib: ["DOM"]后问题仍存在,核心原因就是当前TypeScript版本过旧,它的DOM标准库还没有加入这个API的类型定义。
这个API的TypeScript定义在哪里?
它的官方类型声明包含在TypeScript自带的标准库文件lib.dom.d.ts中,但仅在TypeScript 5.0及以上版本(实际从TS 4.9预览版开始逐步加入)才会有这个定义。你可以在TypeScript的安装目录下的lib文件夹里找到该文件,搜索startViewTransition就能看到对应的接口声明。
解决方法
- 升级TypeScript版本:直接把项目的TypeScript升级到5.0或更高版本,升级后无需额外配置,就能自动识别这个API的类型。
- 手动补充类型声明:如果暂时无法升级TS版本,可以在项目根目录创建一个自定义类型声明文件(比如
view-transitions.d.ts),添加以下内容:
这样TypeScript就能识别该API的类型了。interface Document { startViewTransition(callback: () => Promise<void> | void): ViewTransition; } interface ViewTransition { finished: Promise<void>; ready: Promise<void>; updateCallbackDone: Promise<void>; skipTransition(): void; }
内容的提问来源于stack exchange,提问作者Matthieu Riegler
相关产品推荐
相关产品推荐

