Angular4:Component.name 不适用于生产

Sli*_*nTN 4 javascript ecmascript-6 angular

所以我一直面临这个奇怪的问题,但我不确定这是一个错误还是我在这里遗漏了一些东西。
所以我有一个名为的组件TestComponent,在 AppComponent 中我有一个按钮,当我点击它时,我TestComponent通过这样做获得了名称TestComponent.name

应用组件

import { TestComponent } from './test/test.component';
import { Component } from '@angular/core';

@Component({
  selector: 'app-root',
  template: '<button (click)="showName()">Show</button>'
})
export class AppComponent {    
  showName(){
    console.log('component name: "' + TestComponent.name + '"');
  }
}
Run Code Online (Sandbox Code Playgroud)

正如您通过单击按钮所看到的,我想获取 TestComponent 的名称,它基本上是“TestComponent”
问题是这在开发模式下运行良好,如果我调用ng build也可以正常工作,这就是我在控制台中得到的:

在此处输入图片说明

当我调用ng build --prod, 压缩文件并减小它们的大小时,我得到以下结果:

在此处输入图片说明

这正常吗?!

Est*_*ask 5

Function name包含实际的函数名称。如果函数被缩小为一个字母的名字,它就会失去原来的名字。在某些时候可能会被缩小的应用程序(即每个客户端应用程序)中永远不应该依赖它。Node.js 可能有例外。

name在某些浏览器中是只读的,因此不能被覆盖。如果一个类需要标识符,它应该在不同的名称下明确指定:

class Foo {
  static id = 'Foo';
  ...
}
Run Code Online (Sandbox Code Playgroud)

这是一个相关的问题