【发布时间】:2021-06-19 03:51:45
【问题描述】:
如果我有一个具有两个功能的接口。一个函数返回一个值。我想在同一接口的另一个函数中使用值的类型。我确实使用了泛型,但每次创建新对象时都必须显式声明类型。但没有它也可以做到。例如:
interface myObject<T> {
create(): T
update(value: T): void // use value type defined in create method
}
这里我们使用上面的接口定义新对象:
let test: myObject<string> = {
create() {
return "Hello"
},
update(value) {
// do something with value
},
}
没有<string> 也可以写myObject。 create 方法中已经定义了值类型?
【问题讨论】:
-
请注意,非原始类型名称通常以大写字符开头,如
MyObject,而不是myObject。 -
我已经删除了我的答案以支持@jcalz 的答案,我的答案有一些不必要的开销
-
@captain-yossarian 这是不相关的答案
-
我想要的不是对象创建,而是我想在泛型中省略
<type>并自动使用create方法中的类型。避免编写不必要的代码并使事情更干净。 -
@jcalz 可以实例化命名类或任何内容的约定。在我的例子中是的,我可以使用这个约定。但与其他对象。像任何其他变量一样命名它
标签: typescript typescript-generics