我已经使用了这个msSaveOrOpenBlob方法。它工作正常,但更新后的 typescript 到最新版本,我得到多个错误有两个错误。window.navigator.msSaveOrOpenBlob(data,filename);错误TS 2322:类型“Promise〈〉”不能分配给类型“IMomise〈〉”。那是什么?
xtfmy6hx1#
@Heretic Monkey的答案是正确的,但是如果你只是想解决这个问题--因为你使用的是TypeScript --你可以在调用msSaveOrOpenBlob之前将其强制转换为any类型。(window.navigator as any).msSaveOrOpenBlob(data, filename);此外,您应该首先确保navigator对象确实具有该方法,因此:
any
(window.navigator as any).msSaveOrOpenBlob(data, filename);
const nav = (window.navigator as any); if (nav.msSaveOrOpenBlob) { nav.msSaveOrOpenBlob(data, filename); }
gorkyyrv2#
msSaveOrOpenBlob是Microsoft为Internet Explorer添加的Navigator对象的专有附加项。由于Microsoft正在逐步淘汰对Internet Explorer的支持,因此它已经删除了对TypeScript附带的lib.dom.d.ts和lib.es*.d.ts文件的许多非标准附加项的支持。请参见this GitHub issue about the changes to the DOM.d.ts file。如this GitHub issue on the subject中所示,您必须使用declaration merging自己将这些类型添加到Navigator中。
msSaveOrOpenBlob
Navigator
cygmwpex3#
这是我第一次在Angular 更具体的发展12版本,我创建了一个组件中的方法,做一个下载xlsx文件,在Chrome中它的工作,但在IE中它不工作,我发现添加这行window.navigator.msSaveOrOpenBlob(data, filename);资源管理器可以下载文件,但在VSC标记错误,它是类型“Navigator”上不存在属性“msSaveOrOpenBlob”我在tsconfig.json中修改了模块和库,
window.navigator.msSaveOrOpenBlob(data, filename);
tsconfig.json
"module": "es2020", "lib": [ "es2020", "dom" ]
致:
"module": "es2015", "lib": [ "es2015", "dom" ]
在代码window.navigator.msSaveOrOpenBlob VSC中标记相同属性'msSaveOrOpenBlob'....'但是当我执行ng服务它的工作并在IE和Chrome中下载xlsx文件时。
window.navigator.msSaveOrOpenBlob
3条答案
按热度按时间xtfmy6hx1#
@Heretic Monkey的答案是正确的,但是如果你只是想解决这个问题--因为你使用的是TypeScript --你可以在调用msSaveOrOpenBlob之前将其强制转换为
any
类型。(window.navigator as any).msSaveOrOpenBlob(data, filename);
此外,您应该首先确保navigator对象确实具有该方法,因此:
gorkyyrv2#
msSaveOrOpenBlob
是Microsoft为Internet Explorer添加的Navigator
对象的专有附加项。由于Microsoft正在逐步淘汰对Internet Explorer的支持,因此它已经删除了对TypeScript附带的lib.dom.d.ts和lib.es*.d.ts文件的许多非标准附加项的支持。请参见this GitHub issue about the changes to the DOM.d.ts file。如this GitHub issue on the subject中所示,您必须使用declaration merging自己将这些类型添加到
Navigator
中。cygmwpex3#
这是我第一次在Angular 更具体的发展12版本,我创建了一个组件中的方法,做一个下载xlsx文件,在Chrome中它的工作,但在IE中它不工作,我发现添加这行
window.navigator.msSaveOrOpenBlob(data, filename);
资源管理器可以下载文件,但在VSC标记错误,它是类型“Navigator”上不存在属性“msSaveOrOpenBlob”
我在
tsconfig.json
中修改了模块和库,致:
在代码
window.navigator.msSaveOrOpenBlob
VSC中标记相同属性'msSaveOrOpenBlob'....'
但是当我执行ng服务它的工作并在IE和Chrome中下载xlsx文件时。