簡體   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