我知道我们可以像这样在类中声明静态变量或函数
class SomeClass(){
static foo = 1;
static fooBar(){
return ++SomeClass.foo;
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法直接在函数内声明静态局部变量?
class SomeClass(){
fooBar(){
static foo = 1;
return ++this.foo;
}
}
Run Code Online (Sandbox Code Playgroud)
Rya*_*ugh 10
这是不可能的.您可以在类中声明静态,但不能在函数体中声明静态.
有没有办法在函数内部直接声明静态局部变量
它没有特殊的语法.但是如果你想要一个有状态函数,那么这里将介绍这个模式:https://github.com/basarat/typescript-book/blob/master/docs/tips/statefulFunctions.md
对于你的例子:
class SomeClass {
fooBar = (new class {
foo = 1;
inc = () => this.foo++;
}).inc
}
let foo = new SomeClass();
console.log(foo.fooBar()); // 1
console.log(foo.fooBar()); // 2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8141 次 |
| 最近记录: |