有没有办法检测 TypeScript 中不支持的 Web API 使用情况?

Is there a way to detect unsupported web API usage in TypeScript?

提问人:Iain Merrick 提问时间:10/4/2023 更新时间:10/4/2023 访问量:20

问:

我刚刚编写了一些使用 URLSearchParams.size 的代码,却发现它在 Safari 上不起作用。Safari 在 MDN 的浏览器兼容性表中有一个绿色勾号,但仔细观察,这是针对全新的 Safari 17,而我的 Mac 仍然有 16.6。

解决此问题很容易,但检测它很困难。我可能会意外使用多少其他不受支持的 API?我正在使用 TypeScript,所以我很想在运行 TSC 时收到有关此类事情的警告。这比尝试构建一个全面的集成测试并在许多无头浏览器上运行它要容易得多。

那么:有没有办法让 TS(或 eslint、Copilot 等)检查我是否调用了特定浏览器版本不支持的 API?

TypeScript DOM 类型 跨浏览器

评论


答:

0赞 Iain Merrick 10/4/2023 #1

看起来ts-browser-compat软件包可以做到这一点:

$ pnpm add -D @journeyapps/ts-browser-compat
$ pnpm exec ts-browser-compat -b safari:16
Checking .
URLSearchParams.size - safari 17