gpt4 book ai didi

javascript - 为什么我不能在 TypeScript 类中声明局部变量和函数?

转载 作者:搜寻专家 更新时间:2023-10-30 21:02:58 26 4
gpt4 key购买 nike

在 TypeScript 中,我似乎无法在没有编译器将其添加到原型(prototype)的情况下在类中声明函数。例如:

class MyTypeScriptClass {
// method, is added to prototype
foo1(): void {
alert('invoked foo1');
}

// private method also added to prototype
private foo2(): void {
alert('invoked foo2');
}

//// can I have a local function, without making it a private method?
//function foo3() {
// alert('invoked foo3');
//}
}

以上编译为:

var MyTypeScriptClass = (function () {
function MyTypeScriptClass() { }
MyTypeScriptClass.prototype.foo1 = function () {
alert('invoked foo1');
};
MyTypeScriptClass.prototype.foo2 = function () {
alert('invoked foo2');
};
return MyTypeScriptClass;
})();

我正在寻找的是可以编译为以下 JavaScript 的 typescript :

var fvm = new FlasherViewModel2();
var MyTypeScriptClass = (function () {
function MyTypeScriptClass() { }
MyTypeScriptClass.prototype.foo1 = function () {
alert('invoked foo1');
};
MyTypeScriptClass.prototype.foo2 = function () {
alert('invoked foo2');
};
function foo3() {
alert('invoked foo3');
}
return MyTypeScriptClass;
})();

可以吗?

(作为旁注,我知道 foo3 不能从外部代码调用。我实际上会从类中的另一个方法调用 foo3,例如,将函数传递给 jQuery fadeOut。)

最佳答案

正如 apsillers 提到的,private static 可能就是您想要的。虽然当前版本不支持它,但您将能够在未来的某个时候在 TypeScript 中拥有一个 private static 成员(设计团队根据与此类似的反馈改变了主意) .

关于javascript - 为什么我不能在 TypeScript 类中声明局部变量和函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13730861/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com