【发布时间】:2017-06-24 17:42:37
【问题描述】:
是否可以将命名空间作为通用类型传递,然后从命名空间访问类型?我想实现这样的目标:
namespace Test {
export type A = { ... }
export type B = { ... }
}
type Gen<T> = (a: T.A, b: T.B) => void;
// using Gen<T>
let x: Gen<Test>;
【问题讨论】:
-
不,你不能那样做。但也许你可以详细说明你为什么要开始这样做?你的真实情况是什么?
-
我正在使用 Angular2 和 Apollo 构建一个应用程序。我正在使用
gql-gen来生成类型。它为每个查询生成一个命名空间,并在其中添加Result和Variables类型。我想在我的泛型类型中使用那些同时使用Result和Variables并希望使用Cast<UpvotePostMutation>而不是Cast<UpvotePostMutation.Result, UpvotePostMutation.Variables>。太糟糕了,这是不可能的,但感谢澄清:)。
标签: typescript typescript-generics