[英]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);
}
新答案
通用命名函數使用以下語法:
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.