Объявленные расширения пространства имен - PullRequest
0 голосов
/ 02 августа 2020

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

Types/
    | - interfaces.d.ts
    | - props.d.ts
    | - project.d.ts

Определение интерфейсов

namespace types extends Project {
  interface Foo {
    name: string;
    age: number;
  }
}

Определение реквизита

namespace props extends Project {
  interface Bar {
    color: string;
    position: 'top' | 'bottom';
  }
}

Пространство имен проекта

export declare namespace Project{

  ...other stuff
}

Я пытаюсь его использовать в приложении React, поэтому я хотел бы сделать такие вещи, как

Component<Project.props.Bar> = () => {
   data: Propject.types.Foo = {...};
}

Как можно достичь такой структуры?

Я прикрепил Codesandbox с желаемым результатом (обратите внимание, что он Машинописные ошибки) https://codesandbox.io/s/fervent-wright-nh673?file= / src / App.tsx

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