gpt4 book ai didi

javascript - 允许由另一个字段初始化字段吗?

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

我正在尝试在类里面这样做:

class Foo {
_errorHappened = new Subject();
errorHappened = this._errorHappened.asObservable();
}

我在另一个字段的内联初始化期间使用了一个字段的值。提供的示例有效,如果我翻转这两行的顺序,它会抛出 Cannot read property 'asObservable' of undefined 错误。这让我认为解析器自上而下地处理类声明,如果您引用上面已经定义的字段,一切都很好。

我的问题是:这种行为可信吗?我的意思是,这是记录在案的行为,还是它现在“有效”但不能保证将来不会中断?在其他一些语言中,这样的初始化是不可能的(你必须使用构造函数)。这在 TypeScript 中可以吗?你能链接到文档中的相关部分吗?

最佳答案

是的,您可以相信这种行为。

TypeScript 的精神(大致上)是带有类型的 JavaScript,但在可行且谨慎的情况下,积极地将 JavaScript 管道中的新功能引入 TypeScript 编译器。所以问题变成了:在JavaScript proposal for public class fields (现在是规范的一部分),字段可以在其初始值设定项中使用前一个字段的值吗?答案是肯定的。实例(例如,非静态)类字段初始值设定项在 this 建立后运行(这很重要,这意味着我们可以使用 this)并且它们运行 < strong>按顺序。详见the specification .

关于javascript - 允许由另一个字段初始化字段吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40948622/

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