Angular 角度:类型'&引用;“定期背景同步”';不可分配给类型';许可证名称';

Angular 角度:类型'&引用;“定期背景同步”';不可分配给类型';许可证名称';,angular,typescript,service-worker,Angular,Typescript,Service Worker,我试图激活后台同步,但键入代码时出错。 为什么找不到它 我应该更新什么吗 我的代码: if ('periodicSync' in worker) { const status = await navigator.permissions.query({ name: 'periodic-background-sync', //ERROR }); // Periodic background sync can be used. if (status.sta

我试图激活后台同步,但键入代码时出错。 为什么找不到它

我应该更新什么吗

我的代码:

if ('periodicSync' in worker) {
    const status = await navigator.permissions.query({
       name: 'periodic-background-sync', //ERROR
    });
    // Periodic background sync can be used.
    if (status.state === 'granted') {
       const tags = await worker.periodicSync.getTags(); //ERROR
       if (!tags.includes('sendDbDatas')) {
          worker.periodicSync.register('sendDbDatas'); //ERROR
       }
    } else {
       // Periodic background sync cannot be used.
    }
}

我看到打字不允许“定期背景同步”值

interface DevicePermissionDescriptor extends PermissionDescriptor {
    deviceId?: string;
    name: "camera" | "microphone" | "speaker";
}
作为一种解决方法,您可以对任何对象使用强制转换

    const status = await navigator.permissions.query({
       name: <any>'periodic-background-sync'
    });
const status=wait navigator.permissions.query({

姓名:我可以大胆地说,这种定期同步是一种尚未成熟的现代功能。毫无疑问,打字人员并不知道它。

最好更新这个问题:)更新的
定期后台同步
不是的有效选项之一。有关用法的详细信息,如果使用VS code,则可以按住命令并单击成员(
name
)要查看它的定义,如前面所述,name不包含定期后台同步的定义。现在,我尝试为worker.periodicsync和cast permission.name标记创建一个接口,以获取权限。state=='grated',但即使调用periodicsync.register(),它也不会在服务worker中启动。如果我使用devtools(应用程序/服务人员/定期同步)它启动了。你知道吗?