I've realized sometimes I've seen angular2 code as:
@Component({
selector: '[ui-components]'
What does selector: '[ui-components] mean?
It means you are making the component as an attribute component instead of an element component. When you use the component in your html, you write
<div ui-components></div>
if you use
@Component({
selector: 'ui-components' // without the brackets
you have to use this notation in your html
<ui-components></ui-components>
Here are some readings from the Angular2 documentation.