可重用功能类型

时间:2018-11-10 01:43:08

标签: typescript

我试图声明一个函数类型,然后在类,对象和接口中使用它:

declare function IUpdateMode(mode: Mode): void;

然后我要像这样使用它:

type Foo = {
   updateMode: IUpdateMode
}


class Foo extends React.Component<any> {

    updateRedMode(mode): IUpdateMode {}

}

function updateGreenMode(mode): IUpdateMode {

}

这可能是打字稿吗?

1 个答案:

答案 0 :(得分:1)

我认为您真正想要的就是这个:

type UpdateMode = (mode: Mode) => void

现在您可以在提到的任何地方使用它,但需要进行一些更正:

interface IFoo { // interface instead of a type is preferable when possible (e.g. you may extend it)
   updateMode: UpdateMode
}


class Foo extends React.Component<any> implements IFoo {

    updateMode = (mode: Mode) => {}

}

const updateGreenMode: UpdateMode = (mode) => { // there is no way to restrict a classic function to type alias or interface

}