javascriptangularhtmltypescripthtml5-filesystem

Checking for HTML5 File API Support in Angular?


When coding a check for HTML5 File API browser support like this:

  private hasHtml5FileApiSupport;
  constructor(@Optional() @Inject(DOCUMENT) document: Document) {
    const w = document.defaultView;
    this.hasHtml5FileApiSupport = w.File && w.FileReader && w.FileList && w.Blob;

VSCode draws red squigglies under the w.File && w.FileReader && w.FileList parts.

Is there a way to get rid of these / Is there a better way to do this?


Solution

  • If we inject document using the Document type then we get the strict type checking, and VSCode draws squigglies, however if we use any instead of Document the errors disappear:

    private hasHtml5FileApiSupport;
    constructor(@Optional() @Inject(DOCUMENT) document: any) {
      const w = document.defaultView;
      this.hasHtml5FileApiSupport = w.File && w.FileReader && w.FileList && w.Blob;
    }