将输入转换为 Angular2 中的数字?

Cast inputs to numbers in Angular2?

有什么方法可以自动将组件的输入转换为数字吗?

例如这个组件初始化如下:

<list-of-playlists limit="5"></list-of-playlists>

并在此处定义:

@Component({
    selector: 'list-of-playlists',
    templateUrl: 'list-of-playlists.html'
})
export class MyPlaylistComponent implements OnInit {
    @Input() limit: number;
    ngOnInit() {
        console.log(typeof limit);   // string
    }
}

有没有办法自动将 limit 转换为数字或整数?

否则我将不得不在 Typescript 中将 is 作为字符串或任何类型键入,或者通过将其强制转换为 ngOnInit() 中的数字来启动组件,我想避免这种情况。

您需要使用 Property Binding:

<list-of-playlists [limit]="5"></list-of-playlists>

根据http://victorsavkin.com/post/119943127151/angular-2-template-syntax(传递常量部分)

<list-of-playlists limit="5">

等同于(即语法糖)

<list-of-playlists [limit]=" '5' ">

也就是说,它总是导致字符串绑定。 正如@Sasxa 在他的回答中已经提到的那样,使用 属性 绑定来获取所需的类型。