TypeScript:向命名函数添加接口(函数声明)?

Ala*_*air 3 typescript

刚开始使用 Typescript,并为我的函数使用接口,如下所示:

interface StringFunction {
    (arg1:string):string
}
Run Code Online (Sandbox Code Playgroud)

如果我将该接口声明为变量,则可以将该接口附加到函数:

let testFunction:StringFunction = function(arg1) {}
Run Code Online (Sandbox Code Playgroud)

但我无法弄清楚我将如何(或可以?)使用命名函数来做到这一点。这不起作用:

function testFunction:StringFunction(arg1) {}
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?

Gab*_*e M 6

你可以这样做,但命名函数的语法有点不同。

interface StringFunction {
  (arg1:string): string
}

<StringFunction>function testFunction(arg1) {}
Run Code Online (Sandbox Code Playgroud)

这里我们投射testFunction到界面上。arg1将是一个string. 确保类型是之前function关键字。