我在Node项目中使用TypeScript 2.0。 Node中的函数具有名称属性。我曾尝试延长打字稿函数接口声明像这样的属性:如何在TypeScript中声明lambda样式函数名称属性?
interface Function
{
name: string
}
interface IAsyncInfo {
name: string,
args: any[],
func: (...args: any[]) => any
}
var info: IAsyncInfo;
var name = info.func.name
但打字稿还是抱怨在最后一行:
Property 'name' does not exist on type (...args: any[]) => any
然后我尝试:
var name = (info.func as Function).name
但TypeScript投诉
type '(...args: any[]) => any' cannot be converted to type 'Function'
我不确定到底发生了什么,但是你的函数没有名字。 – Pointy
是的,但这是一个运行时问题。 TypeScript抱怨(在编译时)该属性没有声明,不是在运行时为空或未定义 – prmph
是的,这是我没有得到的部分:) – Pointy