转换 document.getElementById 以访问 TypeScript 中的文件
Casting document.getElementById to access files in TypeScript
我对angularjs很陌生。我无法在线找到解决方案。我想从文件中读取文本。我试图效仿这个例子。FileReader 未使用 AngularJS 正确加载文件
但是,由于我使用的是 TypeScript,因此此行收到此错误
document.getElementById('fileInput').files[0];
错误:属性"文件"在类型"HTMLElement"上不存在。
请建议我如何投射以使用这些文件。
我发现的另一种解决方法是替换:
document.getElementById('fileInput').files[0];
跟
var input: any = document.getElementById('fileInput');
var file = input.files[0];
通过将输入定义为类型"any",Typescript 编译器不再引发错误。
从那个例子来看,这应该可以正常工作,也许你在那里做错了什么。但是,您可以像这样测试代码,将fileChanged()
替换为fileChanged(event)
,然后按event.target.files
获取文件
function fileChanged(event) {
var target = event.target || event.srcElement;
console.log(target.files);
console.log(document.getElementById('fileInput').files);
}
<div>
<input ng-model="csv"
onchange="fileChanged(event)"
type="file" id="fileInput"/>
</div>
你应该把它投射到HTMLInputElement
。该接口将.files
字段定义为FileList
/**
* Returns a FileList object on a file type input object.
*/
readonly files: FileList | null;
interface FileList {
readonly length: number;
item(index: number): File;
[index: number]: File;
}
相关文章:
- 从HTML调用typescript文件中的函数
- 为其他JS生成定义“;编译器”;来自TypeScript定义文件
- 我可以将函数导入到typescript类文件中吗
- 在IntelliJ IDEA中,如何将JS文件从“;查找用法“;使用TypeScript时的结果
- 从HTML文件中的TypeScript(.ts)获取值
- Grunt从typescript源生成空文件
- TypeScript解释了各种文件扩展名
- 如何在Typescript中添加具有扩展原型的文件
- 如何让jQuery在我的Typescript文件中工作
- 如何从typescript文件导入javascript文件
- 我是否必须在每个文件中引用 TypeScript 定义
- 将ng2图表添加到Typescript/ Angular 2项目引用路径和.js文件的路径不正确
- TypeScript 编译器在 WebStorm 中创建空的 JavaScript 文件
- Visual Studio 2015 NodeJS/Typescript 覆盖节点启动文件
- 已编译的javascript文件(来自typescript)被添加到我的Visual Studio项目中
- TypeScript 1.8,多个.ts文件中的单个文件-应用程序结构
- 可以't在不提供文件扩展名的情况下导入TypeScript模块
- Typescript从其他ts文件扩展类
- Typescript:从CommonJS模块导入默认值,从打字文件导出附加类型
- 使用声明文件typescript