sanakirja - Karttaa JSON-objekti TypeScript-objektiin automaattisesti (Angular 2)


Olen uusi Typescriptin ja Javascriptin kanssa. Kysymykseni on: miten tästä

```

{
    "release": {
        "ref": {},
        "commits": {}
    },
    "debug": {
        "ref": {},
        "commits": {}
    },
    "feature": {
        "ref": {},
        "commits": {}
    },
    "hotfix": {
        "ref": {},
        "commits": {}
    }
}

```

määritä se Typescriptillä käyttäen rajapintoja

export interface IRepo { branches: IBranch;/kuinka tehdä branches-tyyppinen IBranch-sanakirja, jonka avaimet ovat merkkijonoja? }

tulee olemaan tuntematon määrä ominaisuuksia kuten debug, release jne., haluan pitää ne sanakirjana IRepo-instanssissa

Käytän tätä tietojen hakemiseen:

```

getRepo() : Observable<IRepo> {
    if (!this.repo) {
        return this.http.get(this._baseUrl + 'repo.json')
            .map((res: Response) => {
                this.repo = res.json();
                return this.repo;
                })
                .catch(this.handleError);
    } else {
        return this.createObservable(this.repo);
    }
}

```

Vastaus #1

Sinulla on kartta, joka menee jostain tunnetusta stringistä tunnetun rakenteen objektiin (sisältää ref commits). Käytä vain merkkijonoindeksoijaa:

interface BranchByName {
  [branchName: string]: {
    ref: any;
    commits: any;
  } 
}

Aiheeseen liittyviä artikkeleita