“this”类型的参数不能分配给“Tool”类型的参数

时间:2021-02-26 15:05:44

标签: javascript typescript

我有以下项目:

export interface Tool {
    label: string;
    visible?: boolean;
    icon?: string;
    devider?: boolean;
    onClick: () => void;
}

this.controls = [
            {
                label: 'Перемещение',
                visible: true,
                icon: 'fas fa-arrows-alt fa-fw fa-lg mr-2',
                onClick: () => {
                    this.dispatch(this.activateMoveAction.bind(this), this);
                },
            }];

和dispather:

dispatch(dispatcher: Function, control: Tool) {}

为什么我会在线上收到这个错误:.bind(this), this);

Argument of type 'this' is not assignable to parameter of type 'Tool'.

这解决了我的问题,但看起来很糟糕:

   this.dispatch(this.activateMoveAction.bind(this), this.controls[0]);

1 个答案:

答案 0 :(得分:0)

发生这种情况是因为您使用了保留上下文 (this) 的箭头函数。如果您将使用常规函数,它将具有正确的上下文。

您可以在此处阅读有关箭头函数的更多信息:https://2ality.com/2012/04/arrow-functions.html