Typescript 是否可能获取泛型类型参数的类型?

Typescript 是否可能获取泛型类型参数的类型?,typescript,typescript-generics,Typescript,Typescript Generics,我正在编写一个简单的反序列化程序,它适用于任何类型的状态。有没有办法获得泛型类型参数的具体类型?代码示例如下所示 type ValType=number |布尔值; 界面状态{ [索引:字符串]:ValType; } 函数序列化(x:ValType):字符串{ 如果(x的类型=='number'){ 返回'n${x}'; }否则{ 返回'b${x}'; } } //返回伪值,而不是从字符串中读取 函数反序列化(x:string,type:string):ValType{ 如果(类型=='numb

我正在编写一个简单的反序列化程序,它适用于任何类型的
状态
。有没有办法获得泛型类型参数的具体类型?代码示例如下所示

type ValType=number |布尔值;
界面状态{
[索引:字符串]:ValType;
}
函数序列化(x:ValType):字符串{
如果(x的类型=='number'){
返回'n${x}';
}否则{
返回'b${x}';
}
}
//返回伪值,而不是从字符串中读取
函数反序列化(x:string,type:string):ValType{
如果(类型=='number'){
返回0;
}否则{
返回false;
}
}
函数序列化状态(s:T):字符串{
让ret='';
Object.values.forEach(v=>{
ret+=序列化(v);
})
返回ret;
}
函数反序列化状态(s:string):T{

//如何从T???TypeScript的静态类型系统中获取键和值类型,包括泛型类型参数,都是从发出的JavaScript中获取的。因此,在运行时不需要使用
T
State
StateA
。解决此类问题的正确方法通常是准确地提出您希望它如何运行在运行时使用JavaScript,然后用静态类型对JavaScript代码进行注释/描述,使其成为TypeScript。不要将
StateA
传递到
deserializeState
,而是需要传递一些表示它的实际JS值。例如,可能?如果它满足您的需要,我将把它写下来作为答案。如果不满足,请ate了解问题所在。@jcalz是的,它就像一个符咒。如何使StateA符合状态接口,因为我的状态必须是非嵌套字符串键记录?另外,如何在Javascript中使用序列化/反序列化?我将它导出为一个库,以便在ts和js中使用。