typescript的type声明{():number}怎么用?

kybetter
  • 483

请问像这样声明了一个 ok 类型后怎么用啊?

type ok = {
  (): number
  foo: number
}
const a: ok = ?

function b(): ok {
    return ?
}
回复
阅读 1.7k
1 个回答

这个跟接口interface相似,一般的写法:

type ok = {
  fun(): number
  foo: number
}
const a: ok = {
    fun:function (): number { 
        return 1
    },
    foo: 1
}

function b(): ok {
    return {
        fun: function (): number{ 
            return 2
        },
        foo:2
    }
}

a.fun()  //1
a.foo    //1
b().foo  //2
b().fun() //2

若的确要使用匿名函数的话,可以这样:

type ok = {
    (): number,
}

function b(): ok {
    return function (){ 
            return 2
        }
}
宣传栏