用泛型定义混合类型

时间:2019-05-07 21:27:32

标签: typescript

在Typescript中,可以这样声明一个接口:

interface Foo {
    (x: number): boolean;
    bar: () => void;
}

表示Foo类型的东西是一个带数字并返回布尔值的函数,还具有方法bar。我想做完全相同的事情,但是我希望函数类型是通用的,像这样:

interface Foo<T> {
    T;
    bar: () => void;
}

的意思是“带有方法bar的T类型的函数”,但它不起作用。我该怎么办?

1 个答案:

答案 0 :(得分:1)

您正在寻找路口类型:

type Foo<T> = T & { bar: () => void };