2016-12-07 52 views
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()方法的最佳方式是什麼?有沒有辦法告訴茉莉花這個重新分配是好的?

+0

你是不是想添加一個自定義'toString'到'Array'?最好是創建一個類,比如'ElementsList',由'Elements'數組構造,並且具有一個定製的'toString'方法 –

+0

覆蓋原型被認爲是不好的做法,您應該將您的自定義toString函數重命名爲其他例如customToString,convertToString等) – borislemke

+0

@BrunoGrieder:是的,這是一個很好的解決方法。 – fwind

回答

0

您是否試圖將自定義的toString添加到Array

這將是最好創建一個類,說ElementsList,從元素的數組構造和具有定製toString方法

(注:一個簡單的輔助函數會做太)

相關問題