我通常会尝试将流函数类型与其实现分开.我写的时候可读性稍高一些:
type Fn = string => string;
const aFn: Fn = name => `hello, ${ name }`;
Run Code Online (Sandbox Code Playgroud)
而不是:
const aFn = (name: string): string => `hello, ${ name }`;
Run Code Online (Sandbox Code Playgroud)
使用泛型类型时,我们可以写:
const j= <T>(i: T): T => i;
const jString: string = j('apple'); // ?
const jNumber: number = j(7); // ?
Run Code Online (Sandbox Code Playgroud)
但是如何将这种类型与函数表达式分开?
type H<T> = (input: T) => T;
const h:H<*> = i => i; // --> WHAT SHOULD GO FOR '*'?
const hString: string = h('apple'); // X error …Run Code Online (Sandbox Code Playgroud) javascript generics parameterized-types flowtype arrow-functions