Typescript: расширение интерфейса с помощью универсального интерфейса - PullRequest
0 голосов
/ 06 ноября 2018

Допустим, у меня есть интерфейс:

interface IAddress {
    addressProperty: any;
}

Есть ли способ написать интерфейс, подобный этому:

interface ILoadable<T> {
    loading: boolean;
}

Так что я могу использовать это как:

interface IStateSlice {
    address: ILoadable<IAddress>;
}

Где адрес будет расширяться с помощью IA-адреса.

1 Ответ

0 голосов
/ 06 ноября 2018

Я думаю, вы можете использовать типы пересечений :

interface IAddress {
    addressProperty: any;
}

interface ILoadable {
    loading: boolean;
}

interface IStateSlice {
    address: ILoadable & IAddress
}

и затем используйте его:

class StateSlice implements IStateSlice{
    address = {
        loading: false,
        addressProperty: 'lol'
    }
}

Вы также можете определить отдельный тип для этого:

type LoadableAddress = ILoadable & IAddress

interface IStateSlice {
    address: LoadableAddress
}

или то же самое, используя расширение интерфейса

interface LoadableAddress extends ILoadable, IAddress { }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...