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