TypeScript 将IDBFactory.databases()方法添加到lib.DOM

t2a7ltrp  于 2022-10-29  发布在  TypeScript
关注(0)|答案(4)|浏览(160)

检索词

idbfactory数据库

建议

类型脚本/库/库.域.d.ts
fa3173f中的第9386行
| | 接口IDB工厂{|
应调整为包含中指定的databases()方法:

用例

获取由窗口控制的所有IndexedDB数据库的列表
示例

console.log(`Removing obselete databases...`)
const databases = await indexedDB.databases()
for (const eachDatabase in databases) {
  if (eachDatabase.name !== DB_NAME) indexedDB.deleteDatabase(eachDatabase.name)
}

检查清单

我的建议符合以下准则:

  • 这不会是对现有TypeScript/JavaScript代码的重大更改
  • 这不会改变现有JavaScript代码的运行时行为
  • 这可以在不基于表达式的类型发出不同JS的情况下实现
  • 这不是运行时功能(例如,库功能、带有JavaScript输出的非ECMAScript语法等)
  • 这个特性将与TypeScript's Design Goals的其余部分一致。
svgewumm

svgewumm1#

确实不见了。我不得不这样做作为临时的解决方案

declare global {
    interface IDBFactory {
        databases: () => Promise<{ name: string, version: number }[]>;
    }
}
mzmfm0qo

mzmfm0qo2#

似乎已经有一个与此相关的问题打开,#37317。如果你觉得合适,@RyanCavanaugh,请随时关闭它并推迟处理该问题。
看起来像是由@fritzschoff制作的PR,但他们对一些生成的文件进行了更改,PR最终关闭,没有合并。
我已经对lib/dom文件(不是生成的文件)进行了修改,但看起来是这样的:
a)是否需要与TS生成的repo进行协调?要使生成的声明文件从我的本地
B)被搁置的原因可能与它的早期采用有关。我可以确认它至少在FF v75中工作。而且肯定是铬/铬。
尽管如此,我还是会抛出我的公关,如果还没有人喜欢它,请随时削减它:D

jk9hmnmh

jk9hmnmh3#

我猜Firefox是这里的瓶颈

gwbalxhn

gwbalxhn4#

看起来我的公关被自动关闭的原因和你的类似,@fritzschoff。即使我甚至没有碰/src/lib/.generated 文件?
所以,🤷我不在乎了。

相关问题