@@ -5,7 +5,7 @@ import { CoreDOMWidgetModel } from './widget_core';
5
5
import { DOMWidgetView } from '@jupyter-widgets/base' ;
6
6
7
7
interface IFileUploaded {
8
- content : any ;
8
+ content : ArrayBuffer ;
9
9
name : string ;
10
10
size : number ;
11
11
type : string ;
@@ -25,7 +25,7 @@ export class FileUploadModel extends CoreDOMWidgetModel {
25
25
icon : 'upload' ,
26
26
button_style : '' ,
27
27
multiple : false ,
28
- value : [ ] ,
28
+ value : [ ] , // has type Array<IFileUploaded>
29
29
error : '' ,
30
30
style : null
31
31
} ;
@@ -67,14 +67,16 @@ export class FileUploadView extends DOMWidgetView {
67
67
} ) ;
68
68
69
69
this . fileInput . addEventListener ( 'change' , ( ) => {
70
- const promisesFile : Promise < IFileUploaded > [ ] = [ ] ;
70
+ const promisesFile : Array < Promise < IFileUploaded > > = [ ] ;
71
71
72
72
Array . from ( this . fileInput . files ?? [ ] ) . forEach ( ( file : File ) => {
73
73
promisesFile . push (
74
74
new Promise ( ( resolve , reject ) => {
75
75
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 ;
78
80
resolve ( {
79
81
content,
80
82
name : file . name ,
@@ -84,7 +86,7 @@ export class FileUploadView extends DOMWidgetView {
84
86
error : ''
85
87
} ) ;
86
88
} ;
87
- fileReader . onerror = ( ) : any => {
89
+ fileReader . onerror = ( ) => {
88
90
reject ( ) ;
89
91
} ;
90
92
fileReader . onabort = fileReader . onerror ;
@@ -94,7 +96,7 @@ export class FileUploadView extends DOMWidgetView {
94
96
} ) ;
95
97
96
98
Promise . all ( promisesFile )
97
- . then ( files => {
99
+ . then ( ( files : Array < IFileUploaded > ) => {
98
100
this . model . set ( {
99
101
value : files ,
100
102
error : ''
0 commit comments