Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript:泛型函数可以使用类型变量吗?_Typescript_Typescript Generics - Fatal编程技术网

Typescript:泛型函数可以使用类型变量吗?

Typescript:泛型函数可以使用类型变量吗?,typescript,typescript-generics,Typescript,Typescript Generics,只需阅读typescript中有关泛型函数的部分: Q:我想知道是否可以根据传递给泛型的类型变量有不同的行为?e、 g: 接口GenericEntityfn{ (arg:T):T; } 函数标识(arg:T):T{ //基于T的“词汇”值,不一定是'arg'的“typeof”? if(is“TypeA”)console.log('A!') 如果(是“TypeB”)myArray.push(arg),则为else else arg.foo+=1 返回arg; } 让myIdentity:Gener

只需阅读typescript中有关泛型函数的部分:

Q:我想知道是否可以根据传递给泛型的类型变量有不同的行为?e、 g:

接口GenericEntityfn{
(arg:T):T;
}
函数标识(arg:T):T{
//基于T的“词汇”值,不一定是'arg'的“typeof”?
if(is“TypeA”)console.log('A!')
如果(是“TypeB”)myArray.push(arg),则为else
else arg.foo+=1
返回arg;
}
让myIdentity:GenericEntityFn=identity

抛开这是否愚蠢/无用不谈,typescript中是否可能存在这种单一接口、差异化行为?

不,当代码被发送到JavaScript时,静态类型系统信息(如接口和泛型)会在运行时运行。运行时没有
,因此无法按编写的方式完成。正确的思考方式是:“我想让JavaScript做什么,然后如何用TypeScript为它编写类型?”如果必须用纯JS来做这件事,你会怎么做?传入构造函数并使用
instanceof
?还有什么?@jcalz(没有,当代码被发送到JavaScript时,静态类型的系统信息,如接口和泛型,这是在运行时运行的。在运行时没有
,因此它不能像编写的那样完成。正确的思考方式是:“我希望JavaScript做什么,然后如何在TypeScript中为其编写类型?”如果必须在纯JS中执行此操作,您会怎么做?传入构造函数并使用
instanceof
?其他内容?@jcalz(