0
我有一個包含對象列表的實例變量的對象。現在我想爲我的元素列表添加一個自定義的toString()方法(Element也有一個自定義的toString()方法)。我嘗試以下,並在瀏覽器中工作:TypeError:嘗試在覆蓋toString()方法時分配給只讀屬性
class Cell {
constructor(public id: string, public elements: Element[]) {
this.elements.toString =(): string => this.elements.join(' | ');
}
}
但是運行茉莉花測試時初始化池時,我得到的錯誤TypeError: Attempted to assign to readonly property.
。
爲列表(而不是[elem1, elem2, elem3]
)獲取自定義toString()方法的最佳方式是什麼?有沒有辦法告訴茉莉花這個重新分配是好的?
你是不是想添加一個自定義'toString'到'Array'?最好是創建一個類,比如'ElementsList',由'Elements'數組構造,並且具有一個定製的'toString'方法 –
覆蓋原型被認爲是不好的做法,您應該將您的自定義toString函數重命名爲其他例如customToString,convertToString等) – borislemke
@BrunoGrieder:是的,這是一個很好的解決方法。 – fwind