Как набирать ветви нормализованного дерева состояний? - PullRequest
0 голосов
/ 26 апреля 2018

У меня есть вопрос о наборе нормализованного дерева состояний в библиотеке ngrx. Например:

const initialState: State = {
    dependencies: {
        1: {
            id: 1,
            name: "dependency1",
            type: "basic"
        },
        2: {
            id: 2,
            name: "dependency2",
            type: "complex"
        },
        3: {
            id: 3,
            name: "dependency3",
            type: "basic"
        }
    },
    dependencyIds: [1, 2, 3]
}

Хорошо, мы можем объявить dependencyIds как number[] в State интерфейсе, и это довольно ясно. Но вопрос таков: Есть ли способ ввести dependecies в качестве объекта, внутри каждого параметра есть Dependency объекты?

что-то вроде:

export interface State {
    dependencies: any,  <--- is there a {Dependency} instead of 'any' type, or sth?
    dependencyIds: number[]
}

1 Ответ

0 голосов
/ 26 апреля 2018

Да, это возможно. Вы можете использовать dependencies: { [key: number]: {...}

interface State {
    dependencies: { [key: number]: {
        id: number,
        name: string,
        type: "basic" | "complex"
    } }
    dependencyIds: number[]
}

Или с последующим интерфейсом:

interface State {
    dependencies: { [key: number]: Dependency},
    dependencyIds: number[];
}

interface Dependency {
    id: number,
    name: string,
    type: "basic" | "complex"
}
...