Веб-работник не имеет доступа к DOM, поэтому объект document
в окне недоступен ни вам, ни любому другому импортированному модулю. См. Эту цитату из этого хорошо объясненного ответа от TJ Crowder :
Обслуживающие работники - веб-работники в целом - не имеют прямого доступа кДОМ вообще. Вместо этого пусть рабочий отправит информацию в основной поток, а код в основном потоке обновит DOM соответствующим образом. Модель потоков для JavaScript в браузерах заключается в том, что существует только один основной поток пользовательского интерфейса (по умолчанию, в котором выполняется код на странице), который может получить доступ к DOM. Остальные от него отгорожены.
Кроме того, не забудьте настроить вашего работника как тип модуля:
@Injectable()
export class SomeWorkerService {
private readonly worker = new Worker('./custom.worker', { type: 'module' });
...
}