首页 > 解决方案 > 打字稿:不使用对象返回所有变量

问题描述

我在 TypeScript 中有下一堂课:

export class A {
  public a:boolean = false;
  public b:boolean;
  public c:string = null;
  public d:string;
}
...
let some = new A();
console.log(Object.keys(some)) // Returns only [a,c] 

我有兴趣获取所有变量名称,分配和未分配,然后获取该变量的类型。

为什么 Object.keys 没有给我所有的属性?// 我的有效结果是:a,b,c,d

标签: typescript

解决方案


Typescript 只是编译回纯 javascript 的超集。它在编译期间提供额外的类型检查,并且可以帮助某些 IDE 和编辑器中的智能感知。

您刚刚让 typescript 知道,您的对象 A 只会有变量,a,b,c,d然后分配一些值。如果您尝试分配给对象上的变量:它会在编译期间失败。acesome.e = false

但最后它被编译为常规的 javascript 和变量bd根本不存在。


推荐阅读