Checking for HTML5 File API Support in Angular?

2019-09-21 18:36发布

问题:

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?

回答1:

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;
}