جاوااسکریپت - ویژگی msSaveOrOpenBlob در نوع Navigator در Angular 13 وجود ندارد


پس از بهروزرسانی به انگولار ۱۳، ویژگی msSaveOrOpenBlob در نوع Navigator وجود ندارد.

من میدانم که Navigator.msSaveOrOpenBlob در حال منسوخ شدن است طبق https://developer.mozilla.org/en-US/docs/Web/API/Navigator/msSaveOrOpenBlob#browser_compatibility

من یک برنامه Angular 12 داشتم، حالا در حال مهاجرت به Angular 13 هستم و TypeScript به آخرین نسخه بهروزرسانی شده است، اما با مشکل The property msSaveOrOpenBlob doesn't exist on type Navigator مواجه هستم

کد جایگزین برای موارد زیر چه خواهد بود

if (window.navigator.msSaveOrOpenBlob) {
            navigator.msSaveOrOpenBlob(blob, filename);
        }

پاسخ شماره ۱

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/1029 https://github.com/microsoft/TypeScript/issues/45612

از ادغام اعلامها استفاده کنید و نوعها را بهصورت محلی در پروژه خود اعلام کنید.