TMB*_*B87 9 angularjs typescript
我现在正在学习打字稿/角度,并且无法解决为什么TSLint将此作为错误抛出,但是代码本身可以在浏览器中工作和显示.
export class GreetingComponent implements OnInit {
names: [{ name: string }] = [{ name: 'Tom' }, { name: 'Dave' }, { name: 'Katie' }, { name: 'John' }];
constructor() { }
ngOnInit() {
}
Run Code Online (Sandbox Code Playgroud)
特别是这条线:
names: [{ name: string }] = [{ name: 'Tom' }, { name: 'Dave' }, { name: 'Katie' }, { name: 'John' }];
Run Code Online (Sandbox Code Playgroud)
完全错误:
[ts]
Type '[{ name: string; }, { name: string; }, { name: string; }, { name: string; }]' is not assignable to type '[{ name: string; }]'.
Types of property 'length' are incompatible.
Type '4' is not assignable to type '1'.
(property) GreetingComponent.names: [{
name: string;
}]
Run Code Online (Sandbox Code Playgroud)
CRi*_*ice 26
类型:
[{name: string}]
Run Code Online (Sandbox Code Playgroud)
是一个元素的元组类型.所以该类型只能是一个包含单个项目的数组.如果您希望该类型是一个填充了这些对象的任何长度的数组,那么它将被写为
{name: string}[]
// Or if you prefer:
Array<{name: string}>
Run Code Online (Sandbox Code Playgroud)