Types 此函数的类型签名传递给独立函数

Types 此函数的类型签名传递给独立函数,types,typescript,method-signature,Types,Typescript,Method Signature,代码如下: interface Foo { c : string } function foo() { var c = this.c return c } foo.call({ c : "quux" }) VisualStudio说this:any,所以this.c的自动完成不起作用。如何添加签名来告诉this实现了Foo,因此IDE具有自动完成this的类型信息。内部Foo?由于函数Foo可以与任何this上下文一起使用,您需要使用类型断言: var c = (&

代码如下:

interface Foo
{
    c : string
}

function foo()
{
    var c = this.c
    return c
}

foo.call({ c : "quux" })

VisualStudio说
this:any
,所以
this.c
的自动完成不起作用。如何添加签名来告诉
this
实现了
Foo
,因此IDE具有自动完成
this的类型信息。
内部
Foo

由于函数
Foo
可以与任何
this
上下文一起使用,您需要使用类型断言:

var c = (<Foo>this).c; 
var c=(this).c;

否则,无法推断签名。

只需创建一个临时变量:

var self:Foo = this;
var c = self.c
return c
在您可以投票/参与的任意上下文中,指定此的含义有一个悬而未决的问题: