Есть ли способ сделать класс в typescript
, чтобы при использовании его экземпляра он возвращал значение или свойство вместо себя?Например, console.log(myClassInstance) => 1
Когда я впервые попытался сделать это, я подумал, что, может быть, что-то подобное сработает:
class MyClass<T> {
constructor(private a: T) {}
get this() { return this.a }
}
Но, к сожалению, этого не произошло.Это сработало: myClassInstance.this => myClassInstance.a
, но это побеждает всю цель.Есть ли какой-нибудь возможный способ сделать это?
Редактировать
Некоторые люди спрашивали, почему я хочу этого, и это просто для лучшей читабельности.Если бы я, например, хотел класс Matrix, я мог бы просто использовать вложенный массив, но добавление в него пользовательских функций и свойств было бы просто затруднительным.Кроме того, new Matrix<number>()
выглядит намного лучше, чем new Array<Array<number>>
Я знаю, что могу использовать интерфейсы и функции, чтобы создать впечатление, что они создают экземпляр класса, но вместо этого возвращает другое значение: new Matrix<number>() => new Array<Array<number>>()
,но я надеюсь, что есть лучший способ использования классов.