Functions in TypeScript
函数 Type Expression
Function type expression 是描述一个函数最简单的方法:
使用类似箭头函数的语法,来标识一个函数的传入参数类型及返回值类型
(<para1>: <type>) => <type>
如,把一个函数作为参数传入至另一个函数中
// callback 函数接受一个 string 类型变量,并且返回 void
function foo(callback: (msg: string) => void) {
callback('bar')
}
foo((msg: string)=>console.log(msg)) // output: bar
当然也可以使用 type
关键字来定义函数 type expression
type CallbackFn = (msg: string) => void
function foo(callback: CallbackFn){
...
}
Call Signatures
JavaScript 函数是一等公民,因此函数也可以有其他属性
type FooFn = {
discription: string, // 其他属性
(param: number): boolean // 注意,不是 => 而是 : 来标注返回值
}
function foo(fooFn: FooFn) {
console.log(fooFn.discription, fooFn(0))
}
泛型
下列函数接受一个 T[]
类型数组,并且返回 T
或者 undefined
function foo<T>(arr: T[]): T | undefined {
return arr[0]
}
const n = foo([1,2,3]) // n 是 number
const s = foo<string>(['a','b',3]) // 报错,因为规定了传入的必须是 string[]
Last updated