Используйте пространство имен в Typescript - PullRequest
0 голосов
/ 02 апреля 2019

Есть ли альтернатива для using namespace в TypeScript?Здесь у меня есть файл с пространствами имен и интерфейсами:

declare namespace NamespaceA {

    export interface IClassA { }

    export namespace NamespaceB {

        export interface IClassB { }

        export namespace NamespaceC {

            export interface IClassC1 { }
            export interface IClassC2 { }
            export interface IClassC3 { }

        }
    }
}

Я хотел бы использовать IClassC1, IClassC2 и IClassC3 в другом файле:

class ClassA implements NamespaceA.NamespaceB.NamespaceC.IClassC1 {  }
class ClassB implements NamespaceA.NamespaceB.NamespaceC.IClassC2 {  }
class ClassC implements NamespaceA.NamespaceB.NamespaceC.IClassC3 {  }

Пишите так долгоимена не очень хорошие.Поэтому я создал собственный тип для каждого интерфейса:

type IClassC1 = NamespaceA.NamespaceB.NamespaceC.IClassC1
type IClassC2 = NamespaceA.NamespaceB.NamespaceC.IClassC2
type IClassC2 = NamespaceA.NamespaceB.NamespaceC.IClassC2

class ClassA implements IClassC1 {  }
class ClassB implements IClassC2 {  }
class ClassC implements IClassC3 {  }

Но есть ли лучший способ?Например:

using namespace NamespaceA.NamespaceB.NamespaceC

class ClassA implements IClassC1 {  }
class ClassB implements IClassC2 {  }
class ClassC implements IClassC3 {  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...