为此传递类型签名传递给独立功能

时间:2014-04-11 13:55:34

标签: types typescript method-signature

以下是代码:

interface Foo
{
    c : string
}

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

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

Visual Studio说this : any因此this.c的自动完成功能不起作用。如何添加签名以告知this实现Foo,以便IDE具有this.foo自动完成的类型信息?

2 个答案:

答案 0 :(得分:0)

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

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

否则,无法推断出签名。

答案 1 :(得分:0)

只需创建一个临时变量:

var self:Foo = this;
var c = self.c
return c

有一个未解决的问题,用于指定this在您可以投票/参与的任意上下文中的含义:https://typescript.codeplex.com/workitem/507