angular - 类型 'string' 不可分配给类型 'ArrayBuffer | ArrayLike<number> | SharedArrayBuffer'

标签 angular typescript

我在 const arr = new Uint8Array(fileReader.result).subarray(0, 4); 中得到一个错误 [ts],特别是在 fileReader.result 中第 11 行

Argument of type 'string | ArrayBuffer' is not assignable to parameter of type 'ArrayBuffer | ArrayLike | SharedArrayBuffer'.
  Type 'string' is not assignable to type 'ArrayBuffer | ArrayLike | SharedArrayBuffer'.

import { AbstractControl } from '@angular/forms';
import { Observable, Observer } from 'rxjs';

export const mimeType = (
    control: AbstractControl
    ): Promise<{ [key: string]: any }> | Observable<{ [key: string]: any }>  => {
              const file = control.value as File;
              const fileReader = new FileReader();
              const frObs = Observable.create(
                (observer: Observer<{ [key: string]: any }>) => {
                  fileReader.addEventListener('loadend', () => {
                    const arr = new Uint8Array(fileReader.result).subarray(0, 4);
                    let header = '';
                    let isValid = false;
                    for (let i = 0; i < arr.length; i++) {
                      header += arr[i].toString(16);
                    }

请大佬们分享一下解决方法。谢谢

最佳答案

您可以通过适当的类型转换来消除错误:例如

...而不是...

this.imagePreview = reader.result;

...尝试...

this.imagePreview = <string>.reader.result;

……或者……

this.imagePreview = reader.result as string;

...或者代替...

const arr = new Uint8Array(fileReader.result).subarray(0, 4);

...写...

const arr = new Uint8Array(<ArrayBuffer>fileReader.result).subarray(0, 4);

……或者……

const arr = new Uint8Array(fileReader.result as ArrayBuffer).subarray(0, 4);

希望对您有所帮助。

关于angular - 类型 'string' 不可分配给类型 'ArrayBuffer | ArrayLike<number> | SharedArrayBuffer',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53536897/

相关文章:

Typescript 编译器即服务 : how to test if one type is assignable to another?

typescript - 您可以根据类型检查对象,而不将其分配给该类型吗?

angular - 能否从 Azure AD 安全组继承 RBAC Blob 存储角色?

css - 如何增加 mat-accordion 中箭头的大小

javascript - Angular 路由错误和正确的方法?

javascript - swagger 中数组 POST 的空 JSON 参数

angularjs - 注入(inject) ui-router resolve 指令

angular - ng2-nvD3 图表控件是否适用于 Angular 4

angular - NGRX状态突变

javascript - 使用React Typescript CRA设置 Electron