javascript - Angular2 FileSaver.js

标签 javascript angular typescript download filesaver.js

我在 angular 2 中使用 FileSaver.js,它运行良好;但是,我在构建中遇到语义错误:

error TS2304: Cannot find name 'saveAs'

我正在使用 angular 2 种子并将库添加到我的 project.config 中,如下所示:

this.NPM_DEPENDENCIES = [
      ...this.NPM_DEPENDENCIES,
{src: 'file-saver/FileSaver.min.js', inject: true},

    ];


this.SYSTEM_CONFIG_DEV.paths['file-saver'] =
        `${this.APP_BASE}node_modules/file-saver/FileSaver`;

    this.SYSTEM_BUILDER_CONFIG.packages['file-saver'] = {
      main: 'FileSaver.js',
      defaultExtension : 'js'
    };

我可以在我的组件中使用 saveAs:

downloadFile(data: any){

        var blob = new Blob([data], { type: 'text/csv' });

        //saveAs is a function in the FileSaver.js library https://github.com/eligrey/FileSaver.js
        saveAs(blob, "results.csv");
    }

问题是语义错误导致我的构建在推送到我的云环境时失败。

我尝试通过以下方式添加输入:

npm i @types/file-saver

这允许我导入:

import { saveAs } from 'file-saver';

但是,这给了我错误:

h.saveAs is not a function

最佳答案

其实只是想通了。我需要声明变量以便 typescript 使用它:

declare var saveAs:any;

关于javascript - Angular2 FileSaver.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40978750/

相关文章:

TypeScript 推荐的带有模块的项目结构

javascript - Typescript - 手动刷新文本区域

javascript - xhr.withCredentials = true;不适用于 Chrome

javascript - 如何选择 "shallowest"匹配的后代?

javascript - 对于给定的正则表达式,R 正则表达式编译器的工作方式不同

javascript - 如何在 Angular 4 中查找 localStorage 的变化?

javascript - 当我尝试提供静态文件时未定义 Node JS Express

javascript - Angular 2 - 如何使用其他组件作为服务并获取其数据

angular - 总是使用 BehaviorSubject 而不是 Subject (RxJs\Angular) 有什么缺点吗?

javascript - TypeScript 不强制对函数参数进行类型检查