说明
type
来定义函数类型的效果基本类型是一样的javasctipt
里面函数也是一个特殊的对象,可以包含额外的属性// 和我们之前 使用 type 定义函数类型是一样的,只是调用签名是对象形式
type RequesCallback = {
(result: string): void // 以为是对象形式,所以不能使用箭头函数
}
function request(callback: RequesCallback) {
callback('sucess')
}
request((result) => console.log(result))
// interface RequesCallback {
type RequesCallback = {
(result: string): void // 以为是对象形式,所以不能使用箭头函数
code: string // 1.限定额外属性 code 类型是 string
}
function request(callback: RequesCallback) {
callback('sucess')
console.log(code) // 4. 这里也可以访问到 code 了
}
// 2.使用的时候就会发生变化
const callback: RequesCallback = (result) => console.log(result)
// 3. 添加额外的属性
callback.code = "200"
request(callback)