【发布时间】:2018-04-12 19:55:47
【问题描述】:
我有一个想法,有一个代码可以根据方法的泛型类型自动检查参数的类型。但是参数的类型应该与给定泛型类型的具体属性的类型相同。让我给你举个例子。
假设我有这些接口:
interface IMessage {
name: string,
payload: any
}
interface IConcreteMessage {
name: "concreteMessage",
payload: string
}
我想以这种方式将一些方法接受 IMessage 称为通用参数:
someobject.genericMethod<IConcreteMessage>(78)
现在的问题是,应该如何声明该方法,以便编译器为给定参数抛出类型错误?
public genericMethod<T extends IMessage>(payload: ??) {}
第二件事 - 我可以以某种方式仅从给定的通用参数中提取方法中的“concreteMessage”值吗?
【问题讨论】:
标签: typescript generics