So I have been using Angular and Typescript for a long time. I cannot seem to find out what the Type for an Input file is.
For example:
<input type="file" (change)="fileChangeEvent($event)">
fileChangeEvent(e:?????){}
All examples purely just uses event without any type, and I am curious to know if such a type even exists.
Angular includes $event that contains the information about an event. The type of $event depends on the target event, e.g., if the target event is a native DOM element event, then it is an object. A component should define the onShow(event) method where the type of the parameter can be KeyboardEvent, MouseEvent, etc.
The property value type=”file” tells that the type of input the user enters is a file. The property value id=”theFile” is used to link the JavaScript code to it using getElementById() method. The property value onclick=”initialize()” is used to specify the function call when the user has clicked on the input.
For Angular 10 strict-type mode, we need to mention type in parameters. You can follow this way to achieve file-list from file input event
// HTML
<input type="file" (change)="uploadFile($event)">
// TS
uploadFile(event: Event) {
    const element = event.currentTarget as HTMLInputElement;
    let fileList: FileList | null = element.files;
    if (fileList) {
      console.log("FileUpload -> files", fileList);
    }
}
Hope this helps. Please share your feedback.
Use File
The File interface provides information about files and allows JavaScript in a web page to access their content.
Try this
component.html
<input type="file" (change)="fileChangeEvent($event.target.files)">
component.ts
fileChangeEvent(e: File[]){
    fileName = e[0];
    fileType = fileName.type;
}
                        Angular 10 and above:
component.html
    <input type="file" (change)="upload($event)">
component.ts
  upload(event: Event) {
      const target = event.target as HTMLInputElement;
      const files = target.files as FileList;
      console.log(files);
  }
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With