# 一、函数作为参数值、变量值或对象时的类型
说明
函数作为参数值、变量值或对象时它的类型该如何限定
- 问题
// 这个时候限定传入的参数要符合这种类型参数呢
function request(callback) {
callback('sucess')
}
- 解决方式
- 语法:
callback: (名字: 类型) => 返回值类型,没有返回值用 void
function request(callback: (result: string) => void) {
callback('sucess')
}
// 这里因为上面定义的时候已经设置的 result 的类型所以他能够自动推断出类型
request((result) => console.log(result))
// 使用 `type` 关键词写法
type RequesCallback = (result: string) => void
function request(callback: RequesCallback) {
callback('sucess')
}
# 二、对象 方法的 类型的方法
- 对于对象里方法的类型也是一样的
interface Product {
getPrice: () => number // 不接受任何参数 返回 number 类型的值
}