【问题标题】:TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signatureTS2351:不能将“new”与类型缺少调用或构造签名的表达式一起使用
【发布时间】:2017-03-25 11:02:52
【问题描述】:

在我的项目中实现cropperjs 有点麻烦。即使我相信它被正确注入,我也会不断收到上述错误。

请看我的代码

module view.pages.controllers {

export class CropToolController {

    public static $inject = ["Cropper"];

    constructor(
        private Cropper: cropperjs.Cropper
    ) {
        var image = document.getElementById('image');
        var cropper = new Cropper(image, {
          aspectRatio: 16 / 9,
          crop: function(e) {
            console.log(e.detail.x);
            console.log(e.detail.y);
            console.log(e.detail.width);
            console.log(e.detail.height);
          }
        });

    }

    private getFileUrl(id: string) {
        return this.$urlHelper.getAssetUrl(id);
    }        
}}

不知道定义文件是否有错误,但对我来说似乎很好

export class Cropper {
    constructor(element: HTMLImageElement, options: CropperOptions);

    crop(): void;
    reset(): void;
    ...}

有人知道我在这里做错了什么吗?谢谢

【问题讨论】:

    标签: angularjs typescript


    【解决方案1】:

    你试图注入“Cropper”,但你需要一个 Angular 模块来注入它。你试过Ng-Cropper?

    【讨论】:

    • 是的,我查看了该指令,但由于我的控制器是用 typeScript 编写的,因此我发现它并不理想。我会丢失 typeScript 定义(我试图完成),但最后我没有成功。我相信我的错误与此无关
    • 请尝试注入“ngCropper”而不是“Cropper”并在此处输入结果。
    猜你喜欢
    • 2021-01-04
    • 2015-09-22
    • 2018-02-06
    • 1970-01-01
    • 2018-02-09
    • 2018-03-15
    • 2017-01-29
    • 2018-10-17
    • 1970-01-01
    相关资源
    最近更新 更多