清理代码的最佳方法

时间:2018-05-25 19:13:00

标签: angular typescript

我有阵列

let awards = [
      {
        finished: 1,
        awardName: 'The beginning',
        description: 'Complete one excersise'
      },
      {
        finished: 5,
        awardName: 'Five of a kind',
        description: 'Complete five excersises'
      },
    ]

在我的组件中,它使我的代码混乱。那么什么是最佳实践,我应该把它放在哪里。在我看来,我认为它应该分开文件awards.ts,然后将其导入我的组件?我像这样使用那个数组

this.awards.forEach(award => {
    if (this.numbOfFinished === award.finished) {
      if (res.find(r => (r.key === award.awardName)))  ...

是否存在专用类型的文件,如接口或打字稿/ Angular中的某种东西?感谢。

1 个答案:

答案 0 :(得分:1)

我通常将这些生成的对象放在一个单独的服务中。

创建一个AwardService并实现一个getter,(如果需要的话)一个setter和一个构造函数。

在构造函数中构建对象(例如)。

在需要的地方导入服务,以获取awards-object的实例。

那是干净且可回收的。

实施例

import { Injectable } from '@angular/core';

@Injectable()
export class AwardService {

    private awards: any;

    constructor() {
        this.awards = [
              {
                finished: 1,
                awardName: 'The beginning',
                description: 'Complete one excersise'
              },
              {
                finished: 5,
                awardName: 'Five of a kind',
                description: 'Complete five excersises'
              },
        ]
    }

    public getAwards(): any {
        return this.awards;
    }

    // if needed
    public setAwards(value: any) {
        this.awards = value;
    }
}