【发布时间】:2019-06-03 21:02:42
【问题描述】:
TypeScript 对此代码示例显示以下错误消息:
class MyClass {
someField: boolean;
constructor() {
return { someField: true };
}
}
属性 'someField' 没有初始化器,也没有在构造函数中明确分配。
(属性)MyClass.someField:布尔值
TypeScript Playground(您需要启用strictNullChecks 和strictPropertyInitialization 才能看到此错误消息。)
给定的代码 sn-p 是从我的原始脚本简化而来的。我想返回构造的值,而不是在构造函数中为 this 赋值。我应该怎么做才能使 TypeScript 正常工作而没有提到的错误?
【问题讨论】:
-
你的代码没有意义。为什么要尝试从构造函数返回值?为什么要尝试返回一个不是类实例的值?
-
@IanKemp
return在构造函数中是完全有效的(至少在 JavaScript 中)。我会认为 TypeScript 是 JavaScript 的超集。那么为什么它没有意义。您可能会获得有关如何编写 JavaScript 构造函数的更多信息from MDN。 -
但这不是普通的 JavaScript,它是 Typescript,TS 存在的原因之一是防止你做一些 JavaScript 允许的奇怪和荒谬的事情,并返回非@987654327 @ 来自构造函数的值肯定属于“奇怪和荒谬的”。如果你要在TS中写JS,就写JS吧!