(十八)函数的调用签名

老怪兽2022年11月29日
  • TypeScript
  • Ts
小于 1 分钟

一、函数的调用签名

说明

  • 函数的调用签名跟我们上节课使用 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)
Loading...