Skip to content

Commit 78d073f

Browse files
committed
Tighten types in file upload
1 parent a7ff405 commit 78d073f

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

packages/controls/src/widget_upload.ts

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { CoreDOMWidgetModel } from './widget_core';
55
import { DOMWidgetView } from '@jupyter-widgets/base';
66

77
interface IFileUploaded {
8-
content: any;
8+
content: ArrayBuffer;
99
name: string;
1010
size: number;
1111
type: string;
@@ -25,7 +25,7 @@ export class FileUploadModel extends CoreDOMWidgetModel {
2525
icon: 'upload',
2626
button_style: '',
2727
multiple: false,
28-
value: [],
28+
value: [], // has type Array<IFileUploaded>
2929
error: '',
3030
style: null
3131
};
@@ -67,14 +67,16 @@ export class FileUploadView extends DOMWidgetView {
6767
});
6868

6969
this.fileInput.addEventListener('change', () => {
70-
const promisesFile: Promise<IFileUploaded>[] = [];
70+
const promisesFile: Array<Promise<IFileUploaded>> = [];
7171

7272
Array.from(this.fileInput.files ?? []).forEach((file: File) => {
7373
promisesFile.push(
7474
new Promise((resolve, reject) => {
7575
const fileReader = new FileReader();
76-
fileReader.onload = (event): any => {
77-
const content = (event as any).target.result;
76+
fileReader.onload = () => {
77+
// We know we can read the result as an array buffer since
78+
// we use the `.readAsArrayBuffer` method
79+
const content: ArrayBuffer = <ArrayBuffer>fileReader.result;
7880
resolve({
7981
content,
8082
name: file.name,
@@ -84,7 +86,7 @@ export class FileUploadView extends DOMWidgetView {
8486
error: ''
8587
});
8688
};
87-
fileReader.onerror = (): any => {
89+
fileReader.onerror = () => {
8890
reject();
8991
};
9092
fileReader.onabort = fileReader.onerror;
@@ -94,7 +96,7 @@ export class FileUploadView extends DOMWidgetView {
9496
});
9597

9698
Promise.all(promisesFile)
97-
.then(files => {
99+
.then((files: Array<IFileUploaded>) => {
98100
this.model.set({
99101
value: files,
100102
error: ''

0 commit comments

Comments
 (0)