Только начиная с машинопись, и используя интерфейсы для выполнения своих функций, например, так:TypeScript: добавить интерфейс к названной функции?
interface StringFunction {
(arg1:string):string
}
Я могу прикрепить этот интерфейс к функции, если я объявляю его как переменная:
let testFunction:StringFunction = function(arg1) {}
но I не может решить, как я (или могу?) сделать это с помощью именованной функции. Это не работает:
function testFunction:StringFunction(arg1) {}
есть ли способ сделать это?
Интерфейсы AFAIK в TypeScript больше похожи на интерфейс на C# или Java - он определяет API-интерфейс объекта, поэтому StringFunction не является именем функции, ее интерфейсом вы можете реализовать. Другими словами, если бы у вас был интерфейс 'StringFunction' с функцией, принимающей строку a1, вы бы не назвали ее так:' StringFunction (arg1) ', но вам нужно было бы создать экземпляр класса, который реализует интерфейс StringFunction, а затем:' obj.func (arg1) ' –
Насколько я могу судить, TypeScript просто не имеет синтаксиса, который позволяет вам указать интерфейс для именованной функции, подобной этой. Есть ли причина, по которой вы не можете придерживаться синтаксиса 'let testFunction: StringFunction = ...'? – smarx