我使用的是带有角2的FileSaver.js,它运行得很好;但是,我的构建中出现了一个语义错误:
错误TS2304:无法找到名称“saveAs”
我使用角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不是一个函数
发布于 2016-12-05 16:45:54
其实刚刚想出来的。为了让类型记录使用它,我需要对变量进行删除:
declare var saveAs:any;发布于 2017-03-22 14:27:48
由于FileSaver没有任何类型,所以我使用了以下方法。
对于类型记录1.8,可以使用
https://github.com/eligrey/FileSaver.js/blob/master/FileSaver.js
2.然后在组件中我想使用FileSaver,我加载了保存的FileSaver.js,并使用
设fileSaver =需要量(‘./../assets/js/FileSaver’);
就在我进口之后。
现在,我想使用FileSaver保存文件的任何地方,我都会使用
fileSaver.saveAs(blob,fileName);
但是,对于类型记录2.x,可以使用
import * as filesaver from '../../assets/js/FileSaver';并将其用作:
fileSaver.saveAs(blob,fileName);
发布于 2016-12-05 17:04:30
其他解决方案是安装FileSaver类型的包。
npm install --save @types/filesaver由于默认情况下TSConfig在@type/*目录中查找类型,它将在整个代码/应用程序中自动识别。
https://stackoverflow.com/questions/40978750
复制相似问题