Свойства функции в классе TypeScript не распознаются - PullRequest
0 голосов
/ 16 апреля 2020

Я пытаюсь создать класс TypeScript, который имеет необязательное свойство типа function. Это свойство имеет реализацию по умолчанию, но новый объект при создании может переопределить реализацию по умолчанию для этого свойства функции.

Например,

export class MyObj {
  public props: MyObjProps;

  constructor({
    title,
    isHidden = false,
    format = (val) => val,
  }: MyObjProps) {
    this.props = arguments[0];
  }
}

interface MyObjProps {
  title: string;
  isHidden?: boolean;
  format?: (val: string) => string;
}

Тогда, если я создаю экземпляр

const myObj = new MyObj({
  title: "Blah", 
  format: (val) => "custom: " + val
});

, и вместо 100 custom: something я получаю myObj.props.format("something"), он говорит format is not a function.

Что на земле происходит? Я не понимаю, почему это не работает. Любая помощь высоко ценится!

1 Ответ

0 голосов
/ 16 апреля 2020

Вам нужно адаптировать код следующим образом

interface MyObjProps {
  title: string;
  format?: (val: string) => string;
}

class MyObj {
  public props: MyObjProps;

  constructor(x: MyObjProps) {
    this.props = x;
  }
}



const myObj = new MyObj({
  title: "Blah", 
  format: (val: string) => "custom: " + val
});

var y = myObj.props.format("123");
console.log(y);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...