我们知道可以按照如下的方式定义泛型函数,并使用:
function swap<T>(a: T, b: T): void {
const temp = a;
a = b;
b = temp;
console.log(`a: ${a}, b: ${b}`);
}
// 调用泛型函数
swap<number>(1, 2); // 输出: "a: 2, b: 1"
swap<string>('hello', 'world'); // 输出: "a: world, b: hello"
但是我想要定义一个新的函数(以swap函数为类型)如何做呢?
我尝试下面的方式:
const testFun: swap<string> = (a: string, b: string) => {
}
但是会报错:
1、是否也就是说,不能以泛型函数为:后面的东西
对吗?
2、:后面的东西
叫做什么专业术语呢?
肯定不能说是类型(type),因为interface也可放在:后面。
swap
又不是个类型,typeof swap
才是类型。type
那只是一个关键字而已,并不影响这个玩意儿叫啥 —— 人家名字就叫 "TypeScript",那你打算咋理解开头的 "Type"?况且type
关键字定义出来的东西严格来说也应该叫“类型别名”( Type Alias )。P.S. 从过往的提问来看感觉题主是在看某些 TS 项目的源码、但自己却没有系统地学习过 TS,所以东一榔头西一棒子的遇到啥问题了就跑过来问啥,我个人建议你先找个入门教程先自学一下,而且不要去纠结这些名词概念,这对入门没有帮助。等你学会了基本的语法之后,再去看这些概念性的东西,相互印证。