【发布时间】:2018-01-14 07:16:25
【问题描述】:
我在这里简化问题。
interface Identity{
name: string;
}
另一个通用接口
interface State<T extends Identity>{
[T.name] : StateContainer<T>
}
但这不会起作用,因为它会给出错误
找不到T
如果我尝试通过将其保存在函数中来生成它
function generate(c : Identity){
interface State<T>{
[c.name]: StateContainer<T>
}
}
上面写着
接口中的计算属性名称必须直接引用内置符号。
我想要的输出是具有动态界面,例如 . State<Tenant> 应该表现得很好
interface State{
'tenant': ....
}
【问题讨论】:
-
你想达到什么目的?我在这里有点打字稿方面,因为我也不懂你的代码
-
我实际上是在尝试使用泛型来概括代码,我更新了我的预期输出
-
Tenant类型和'tenant'字符串有什么联系?后者应该从哪里检索? -
它可以从
Identity扩展,并在Tenant内有一个name属性或者...每个函数都有name 属性,所以我可以直接调用Tenant.name
标签: typescript typescript-generics