컴파일 중에 유형이 지워지기 때문에 코드를 실행할 때 유형을 사용할 수 없습니다. 이 경우
이것은 당신이 작은 중복을해야 의미 ...
class MyClass {
constructor() {
}
GenericMethod<T>(targetType: any): string {
return typeof(targetType);
}
}
class MyClass2 {
}
alert(new MyClass().GenericMethod<MyClass2>(MyClass2));
, 당신은 대답 function
와 끝까지,하지만 당신은 아마 MyClass2
을 원했다.
class Describer {
static getName(inputClass) {
var funcNameRegex = /function (.{1,})\(/;
var results = (funcNameRegex).exec((<any> inputClass).constructor.toString());
return (results && results.length > 1) ? results[1] : "";
}
}
class Example {
}
class AnotherClass extends Example {
}
var x = new Example();
alert(Describer.getName(x)); // Example
var y = new AnotherClass();
alert(Describer.getName(y)); // AnotherClass
:
I는 다음과 같이 보이는, example of how to get runtime type names in TypeScript을 작성했습니다