Я пытаюсь объявить тип функции, а затем использовать его в классе, объектах и ​​интерфейсах, например:

declare function IUpdateMode(mode: Mode): void;

Тогда я хочу использовать это так:

type Foo = {
   updateMode: IUpdateMode
}


class Foo extends React.Component<any> {

    updateRedMode(mode): IUpdateMode {}

}

function updateGreenMode(mode): IUpdateMode {

}

Возможно ли это в машинописном тексте?

0
Noitidart 10 Ноя 2018 в 04:43

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

}
1
Nurbol Alpysbayev 10 Ноя 2018 в 02:10