繁体   English   中英

通用函数类型

[英]Generic function type

我可以创建这样的函数类型:

type read = (name: string) => void;

const test:read = (value: string) => {
  console.log(value);
}

test的实现会是什么样子,如果我像这样改变read

type read<T> = (name:T) => void;

这不起作用:

const test<T>:read<T> = (value: T) => {
  console.log(value);
}

TS游乐场

新答案

通用命名函数使用以下语法:

function test<T>(name: T) : void {
    console.log(name);
}

以及将函数分配给常量的语法:

const test = <T>(name: T) : void => {};

打字稿游乐场示例

更多关于泛型的阅读

旧答案

这就是你想要的:

type read<T> = (name:T) => void;

const test : read<string> = (name) => {
      console.log(name);
}

然后扩展,如果您希望一个函数采用多种类型:

const testFlex : read<string|number> = (name) => {
    console.log(name);
}

testFlex('a');
testFlex(1);

以及不同类型的单独功能:

const testString : read<string> = (name) => {
    console.log(name);
}

const testNumber : read<number> = (name) => {
    console.log(name);
}

testString('a');
testNumber(1);

打字稿游乐场示例

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM