(十八)函数的调用签名
2022年11月29日
一、函数的调用签名
说明
函数的调用签名跟我们上节课使用
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...