Move type declaration of sealed interfaces inside namespace
Opened this issue · 0 comments
owochle commented
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.