我的打字稿中确实有一个静态类,该类具有如下异步构建方法:
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'
}
答案 0 :(得分:1)
请记住,在运行时,您使用的是JavaScript,而不是TypeScript。运行时行为会因JavaScript引擎以及TypeScript的编译目标而异,例如〜ES5或〜ES2015,但您显然是针对正在使用的console
的实现和,但目前还没有标准一种以class
语法显示静态属性的方法(一个is coming,但现在还没有),所以您只能看到JavaScript引擎可以有效表示的内容。
另外,您不是声明静态属性。您要在运行时添加一个。我必须检查建议的规范文本以确保确定,但是如果该类的表示形式仅包含声明的静态属性,而不是在运行时添加的静态属性,这也不会令我感到惊讶。
该属性在那里,只是没有在序列化中显示。