简体   繁体   English

使用 ngImgCrop 绕过 Typescript

[英]Getting around Typescript with ngImgCrop

I'm new to coding and have the opportunity to do some small stories on a project to whet my teeth.我是编码新手,有机会在一个项目上做一些小故事来磨练我的牙齿。 Right now I'm working on getting profile picture selection and cropping into a webapp with AngularJS.现在我正在使用 AngularJS 选择个人资料图片并将其裁剪到一个 web 应用程序中。 I've selected ngImgCropper to handle the cropping.我选择了 ngImgCropper 来处理裁剪。 Here's a JSFiddle with boilerplate code: http://jsfiddle.net/a2ew3yhf/50/这是一个带有样板代码的 JSFiddle: http : //jsfiddle.net/a2ew3yhf/50/

And here's JavaScript from that link:这是来自该链接的 JavaScript:

var handleFileSelect=function(evt) {
  var file=evt.currentTarget.files[0];
  var reader = new FileReader();
  reader.onload = function (evt) {
    $scope.$apply(function($scope){
        $scope.myImage = evt.currentTarget.result;
    });
  };
    reader.readAsDataURL(file);
};

Here's my problem.这是我的问题。 My project uses Typescript, which doesn't support evt.currentTarget.result, so I get the following error:我的项目使用了不支持 evt.currentTarget.result 的 Typescript,因此出现以下错误:

Property 'result' does not exist on type 'EventTarget'

Is there any way to get around this?有没有办法解决这个问题?

Simple solution简单的解决方案

If you sure that this property exist just make something like below如果您确定此属性存在,请执行以下操作

 var handleFileSelect=function(evt) {
      var file=evt.currentTarget.files[0];
      var reader = new FileReader();
      reader.onload = function (evt) {
             $scope.$apply(function($scope){
                  $scope.myImage = (<any>evt.currentTarget).result;
              });
      };
      reader.readAsDataURL(file);
 };

Also you can create own interface that would be describe your target您也可以创建自己的界面来描述您的目标

  interface MyTarget {
        result:any;   //or type of image
  } 
  //skip some code
 $scope.myImage = (evt.currentTarget as MyTarget).result;

Complicated solution复杂的解决方案

You can provide own declaration of ngImageCroper or provide description for current event您可以提供自己的 ngImageCroper 声明或提供当前事件的描述

   var handleFileSelect=function(evt: ImageCropEvent){
        //your    stuff
   }

Resource资源

  1. Write your d.ts file写你的 d.ts 文件

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM