Skip to content

Move type declaration of sealed interfaces inside namespace #208

Open
@OwOchle

Description

@OwOchle

Type declaration of interface should be moved inside namespace, although it then requires user to type Namespace.Interface, it avoids errors when importing both the namespace and the type.

export type TagResult =
  | TagResult.BuildErrorTagResult
  | TagResult.SuccessRightTreeTagResult
  | TagResult.TestErrorTagResult
  | TagResult.WrongFileTreeSuccessTagResult;

export namespace TagResult {
  export enum Type {
    BuildErrorTagResult = "moulinette.tag.BuildErrorTagResult",
    TestErrorTagResult = "moulinette.tag.TestErrorTagResult",
    SuccessRightTreeTagResult = "moulinette.tag.SuccessRightTreeTagResult",
    WrongFileTreeSuccessTagResult = "moulinette.tag.WrongFileTreeSuccessTagResult",
  }
}

becomes

export namespace TagResult {
    export type TagResult =
  | TagResult.BuildErrorTagResult
  | TagResult.SuccessRightTreeTagResult
  | TagResult.TestErrorTagResult
  | TagResult.WrongFileTreeSuccessTagResult;

  export enum Type {
    BuildErrorTagResult = "moulinette.tag.BuildErrorTagResult",
    TestErrorTagResult = "moulinette.tag.TestErrorTagResult",
    SuccessRightTreeTagResult = "moulinette.tag.SuccessRightTreeTagResult",
    WrongFileTreeSuccessTagResult = "moulinette.tag.WrongFileTreeSuccessTagResult",
  }
}

So that you could here use TagResult (as TagResult.TagResult) and TagResult.Type without any problems, ambiguity or IDE miscomprehension.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions