如何在打字稿中获取模板类型的类型名称?

时间:2021-08-01 10:37:16

标签: javascript typescript

export class MyClass<T> {
  private myObject: ObjectType<T>;

  constructor(myObject: ObjectType<T>) {
    console.log(type name of T);  ?????
    this.myObject= myObject;
  }
}

我知道在编译时我不能这样做,有什么技巧可以检查类型名称吗?

2 个答案:

答案 0 :(得分:1)

使用类,您可以执行以下操作。不适用于接口或类型,仅适用于类的实例。

class Foo {}
class Bar {}

function isFoo(obj: Foo | Bar | null):boolean {
    return obj instanceof Foo;
}

const foo = new Foo();
console.log( isFoo(foo) );

答案 1 :(得分:0)

这对于香草 Typescript 是不可能的。所有类型在编译期间都会被擦除。但是,您可以使用反射库,例如:https://github.com/Hookyns/ts-reflection