TypeScript变量是一个类型化的函数

时间:2013-11-06 18:24:01

标签: function typescript

我想在TypeScript类中有一个变量,类型为“boolean isVisible()”。

  1. 我如何申报?
  2. 如何将此函数另一个实例化对象分配给此变量?
  3. 如何调用此功能?
  4. ps - 这似乎是如此基本,但是10分钟的搜索,我找不到它。

2 个答案:

答案 0 :(得分:6)

function boolfn() { return true; }
function strfn() { return 'hello world'; }

var x: () => boolean;
x = strfn; // Not OK
x = boolfn; // OK

var y = x(); // y: boolean

答案 1 :(得分:1)

这是实现目标的一种方式,但我很乐意与您合作,弄清楚您想要实现的目标。

export module Sayings {
    export class Greeter {      
        isVisible(): boolean {
            return true;
        }
    }
}

var greeter = new Sayings.Greeter();
var visible = greeter.isVisible();

您也可以使用属性而不是函数。你原来的问题谈论的是一个“变量”和一个“函数”,好像它们是同一个东西,但事实并非如此。

export module Sayings {
    export class Greeter {      
        isVisible: boolean = false;
    }
}

var greeter = new Sayings.Greeter();
var visible = greeter.isVisible;
greeter.isVisible = true;

或者这样的事可能吗?

export module Sayings {
    export class Greeter {      
        constructor(public isVisible: () => boolean) {

        }
    }
}

var someFunc = () => {
    return  false;

}

var greeter = new Sayings.Greeter(someFunc);
var visible = greeter.isVisible();