我得到了一個(gè)在項(xiàng)目中使用了很多接口,有一些邏輯是在項(xiàng)目中重復(fù)出現(xiàn)。感覺這不是一個(gè)好的解決方案,我想用某種方式來(lái)包裝。
Current code:
interface Person {
status: StatusEnum
}
.... generic html
return {adam.status === StatusEnum.someState && <div>This is in some state</div>}
我們想要達(dá)到的目標(biāo)是:
interface Person {
status: StatusEnum
}
class PersonHelper implements Person {
isInSomeState = () => this.status === StatusEnum.someState
}
.... generic html
return {adam.isInSomeState() && <div>This is in some state</div>}
我為這個(gè)壞例子感到抱歉,但我希望你們理解我想要的。我只需要在某些地方使用這個(gè)類,而不需要完整的項(xiàng)目。我通常會(huì)添加一個(gè)helper.ts來(lái)處理這個(gè)問(wèn)題,但我不想嘗試這個(gè)方法并探索它是否是一個(gè)好的模式。
BR
助手函數(shù)怎么樣?
JS中沒有像C#(C#extension method doc)中那樣的擴(kuò)展方法。但是有兩個(gè)方案可以實(shí)現(xiàn)非常接近您想要的,This-Binding語(yǔ)法和管道操作符。但是,它們還沒有被標(biāo)準(zhǔn)化,只有一些編譯器支持。