6

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

  1. 我该如何申报?
  2. 如何将另一个实例化对象的这个函数分配给这个变量?
  3. 我如何调用这个函数?

ps - 这似乎很基本,但搜索了 10 分钟,我找不到它。

4

2 回答 2

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
于 2013-11-06T20:04:57.780 回答
2

这是一种方法,尽管我很乐意与您合作,以找出您想要实现的目标。

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();
于 2013-11-06T18:26:47.920 回答