将对象成员分配给上下文菜单命令-TypeScript

时间:2019-03-09 14:17:18

标签: angular typescript primeng

我需要将JSON中的字符串替换为具有相应名称的函数(对象方法),并将参数传递给它 但是得到了

"Type 'this[Extract<keyof this, string>]' is not assignable to type '(event?: any) => void'"

简而言之,想拥有类似的东西:

if (typeof this[key] === 'function') {
    position.command = this[key];
}

但是我的解决方案不允许我将参数传递给它

1 个答案:

答案 0 :(得分:0)

尝试一下。另外请注意,这样做很危险,因为每个功能都将分配给该命令。

  id = 1;
  name = 'alice';

  position = {
    command: null
  }

  ngOnInit() {
    for (const key in this) {
      console.log(key);

      if (typeof this[key] === 'function') {
          this.position.command = this[key];
      }
    }
  }

  someFunction() {
    console.log('someFunction');
  }

请参见此stackblitz,但不会出现任何错误。

仅当您使用字符串初始化命令时,错误才存在;例如。 command: ''