所以我一直面临这个奇怪的问题,但我不确定这是一个错误还是我在这里遗漏了一些东西。
所以我有一个名为 TestComponent
的组件,在 AppComponent 中有一个按钮,当我点击它时,我通过执行 TestComponent
得到了 TestComponent.name
的名称。
AppComponent :
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 + '"');
}
}
正如您通过单击按钮所看到的,我想获取 TestComponent 的名称,它基本上是“TestComponent”问题是这在开发模式下运行良好,如果我调用
ng build
也可以正常工作,这就是我在控制台中得到的:当我调用
ng build --prod
来压缩文件并减小它们的大小时,我得到以下结果:这正常吗?!
最佳答案
Function
name
包含实际的函数名称。如果函数被缩小为一个字母的名字,它就会失去原来的名字。在某些时候可能会被缩小的应用程序中,即每个客户端应用程序,都不应该依赖它。 Node.js 可能有异常(exception)。name
在某些浏览器中是只读的,因此不能被覆盖。如果一个类需要标识符,它应该在不同的名称下明确指定:
class Foo {
static id = 'Foo';
...
}
这是一个 related question 。
关于javascript - Angular4 : Component. 名称不适用于生产,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46561116/