Свойство msSaveOrOpenBlob не существует для типа Navigator angular 13
Свойство msSaveOrOpenBlob не существует в типе Navigator после обновления до углового 13.
Я знаю
Navigator.msSaveOrOpenBlob
устарел согласно https://developer.mozilla.org/en-US/docs/Web/API/Navigator/msSaveOrOpenBlob#browser_compatibility
У меня было приложение angular 12, теперь я перехожу на angular 13, и машинописный текст был обновлен до последней версии, но столкнулся с проблемой
The property msSaveOrOpenBlob doesn't exist on type Navigator
какой будет альтернативный код для нижеприведенного
if (window.navigator.msSaveOrOpenBlob) {
navigator.msSaveOrOpenBlob(blob, filename);
}
3 ответа
let newVariable: any = window.navigator;
var newBlob = new Blob([res.body], { type: "application/csv" });
if (newVariable && newVariable.msSaveOrOpenBlob) {
newVariable.msSaveOrOpenBlob(newBlob);
return;
}
Нашел несколько ссылок
https://github.com/microsoft/TypeScript-DOM-lib-generator/issues/1029https://github.com/microsoft/TypeScript/issues/45612
Используйте слияние объявлений и объявляйте типы локально в своей работе над проектом.
Объявите ниже код в main.ts
declare global{
interface Navigator {
msSaveOrOpenBlob?: (blob: any, defaultName?: string) => boolean
}
}