我需要在我的角度应用程序中使用屏幕锁定API
这是我的密码
if ('wakeLock' in navigator) {
await navigator.wakeLock.request();
}但是,角编译失败,有以下错误:
Error: src/app/feature/test/test/test.component.ts:20:42 - error TS2339: Property 'wakeLock' does not exist on type 'Navigator'.角度版本和信息
_ _ ____ _ ___
/ \ _ __ __ _ _ _| | __ _ _ __ / ___| | |_ _|
/ △ \ | '_ \ / _` | | | | |/ _` | '__| | | | | | |
/ ___ \| | | | (_| | |_| | | (_| | | | |___| |___ | |
/_/ \_\_| |_|\__, |\__,_|_|\__,_|_| \____|_____|___|
|___/
Angular CLI: 13.0.3
Node: 16.13.0
Package Manager: npm 8.1.0
OS: win32 x64
Angular: 13.0.2
... animations, common, compiler, compiler-cli, core, forms
... language-service, platform-browser, platform-browser-dynamic
... platform-server, router
Package Version
---------------------------------------------------------
@angular-devkit/architect 0.1300.3
@angular-devkit/build-angular 13.0.3
@angular-devkit/core 13.0.3
@angular-devkit/schematics 13.0.3
@angular/cdk 13.0.3
@angular/cli 13.0.3
@angular/flex-layout 13.0.0-beta.36
@angular/material 13.0.3
@schematics/angular 13.0.3
rxjs 6.6.7
typescript 4.4.4如何修改类型记录以包含屏幕锁定API并编译代码?
发布于 2022-04-08 05:40:59
最后,两周后,我找到了一种通过添加DefinitelyTyped来支持此功能的方法。两步就能解决这个问题。
@types/dom-screen-wake-lock包npm i @types/dom-screen-wake-lock -Dtsconfig.json添加类似于的类型
{
...
"compilerOptions":{
...
"types":[
...
"dom-screen-wake-lock"
...
]
...
}
...
}发布于 2022-04-07 14:05:48
我就是这么做的:
const anyNav: any = navigator
if ('wakeLock' in navigator) {
anyNav["wakeLock"].request("screen")
}我首先尝试添加DefinitelyTyped定义,它修复了编辑器抛出的错误,但仍然导致编译失败。这就成功了,基本上我们将导航器保存到任意类型变量,它允许我们调用任何属性或方法,而无需类型检查。
if语句允许在尝试调用它之前检查浏览器是否支持call。
https://stackoverflow.com/questions/71538643
复制相似问题