我有苹果和梨 - 都有一个isDecayed属性:
interface Apple {
    color: string;
    isDecayed: boolean;
}
interface Pear {
    weight: number;
    isDecayed: boolean;
}
这两种类型都可以在我的水果篮中(多次):
interface FruitBasket {
   apples: Apple[];
   pears: Pear[];
}
我们假设现在我的篮子是空的:
const fruitBasket: FruitBasket = { apples: [], pears: [] };
现在我们随机抽出一种:
const key: keyof FruitBasket = Math.random() > 0.5 ? 'apples': 'pears'; 
const fruits = fruitBasket[key];
当然,没有人喜欢朽烂的水果,所以我们只选择新鲜水果:
const freshFruits = fruits.filter((fruit) => !fruit.isDecayed);
不幸的是,Typescript告诉我:
无法调用类型缺少调用签名的表达式.输入'((callbackfn :(值:Apple,索引:数字,数组:Apple [])=> any,thisArg?:any)=> Apple [])| ......'没有兼容的呼号.
这里有什么问题 - 只是因为Typescript不喜欢新鲜水果,或者这是一个Typescript错误?
您可以在官方的Typescript Repl中自己尝试一下.
提供者组件装饰器的数组
@Component({
    moduleId: module.id,
    selector:    'hero-list',
    templateUrl: './hero-list.component.html',
    providers:  [ HeroService ]
 })
 export class HeroListComponent implements OnInit {
    /* . . . */
 }
提供者NgModule装饰器数组
@NgModule({
  imports:      [ BrowserModule ],
  providers:    [ Logger ],
  declarations: [ AppComponent ],
  exports:      [ AppComponent ],
  bootstrap:    [ AppComponent ]
})
Angular2中这两个提供程序数组有什么区别?