我在 typescript 中确实有一个静态类,它具有如下所示的异步构建方法:
export default class DbServiceInit {
public static myProperty: string;
public static build = async(): Promise<void> => {
try {
DbServiceInit.myProperty = "ssss";
console.log('My Static Class', DbServiceInit)
} catch (error) { console.error(error); }
}
}
当我这样调用它时:
await DbServiceInit.build();
它记录一个空类:
My Static Class class DbServiceInit {
}
任何帮助将不胜感激,因为我无法弄清楚为什么会发生这种情况,正如我所期望的那样:
My Static Class class DbServiceInit {
myProperty: 'ssss'
}
最佳答案
请记住,在运行时,您处理的是 JavaScript,而不是 TypeScript。运行时行为会因 JavaScript 引擎以及您的 TypeScript 编译目标而异,例如~ES5 或 ~ES2015,但你显然是针对 ES2015+),和关于正在使用的console
的实现,但目前还没有标准 在 class
语法中显示静态属性的方法(一个 is coming ,但目前还没有),因此您只能看到 JavaScript 引擎可以有效表示的内容。
另外,您不是声明静态属性。您在运行时添加一个。我必须检查提议的规范文本才能确定,但如果类的再现仅包括声明的静态属性,而不是在运行时添加的属性,我也不会感到惊讶。
属性在那里,只是没有在序列化中显示。
关于javascript - typescript 静态类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56792918/