接口的助手函數(shù)

我得到了一個(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ù)怎么樣?

const isInSomeState = (person: Person): boolean => person.status === StatusEnum.someState

// .... generic html  
return {isInSomeState(adam) && <div>This is in some state</div>}

JS中沒有像C#(C#extension method doc)中那樣的擴(kuò)展方法。但是有兩個(gè)方案可以實(shí)現(xiàn)非常接近您想要的,This-Binding語(yǔ)法和管道操作符。但是,它們還沒有被標(biāo)準(zhǔn)化,只有一些編譯器支持。

主站蜘蛛池模板: 欧美日本精品一区二区三区| www一区二区三区| 久久综合一区二区无码| 无码人妻少妇色欲AV一区二区 | 日本高清一区二区三区| 久久精品国产第一区二区| 精品国产不卡一区二区三区| 中文字幕av人妻少妇一区二区| 激情一区二区三区| 亚洲日韩激情无码一区| 爆乳熟妇一区二区三区霸乳| 精品中文字幕一区二区三区四区| 久久蜜桃精品一区二区三区| 亚洲一区二区免费视频| 久久一区二区明星换脸| 无码人妻一区二区三区在线 | 一区二区三区波多野结衣| 精品国产免费观看一区| 精品少妇人妻AV一区二区| 99久久精品日本一区二区免费| 精品一区二区三区无码免费视频| 久久精品国产一区二区三区日韩| 亚洲国产综合无码一区 | 一级毛片完整版免费播放一区| 国产成人一区二区三区精品久久 | 日韩AV无码一区二区三区不卡| 精品无码综合一区二区三区| 波多野结衣AV一区二区三区中文| 波多野结衣AV一区二区三区中文 | 日韩精品一区二区三区色欲AV| 国产亚洲3p无码一区二区| 亚洲国产精品乱码一区二区| 久久免费区一区二区三波多野 | 精品人妻一区二区三区四区 | 精品人妻码一区二区三区| 91久久精品午夜一区二区| 亚洲一本一道一区二区三区| 中文字幕av日韩精品一区二区| 精品成人一区二区三区免费视频| 一区二区三区日本视频| 国产在线精品一区二区中文|