打字稿getter和setter错误

rtn*_*rtn 14 typescript angular2-services angular

好吧,这是我第一天使用打字稿做一些Angular 2,我试着做一个简单的getter和setter服务.

import {Injectable} from "angular2/core";

@Injectable()
export class TodoService {

  private _todos:Array = [];

  get todos():Array {
    return this._todos;
  }

  set todos(value:Array) {
    this._todos = value;
  }

}
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释为什么Typescript编译器抛出以下错误,因为我认为它应该没问题.

ERROR in [default] /Users/testguy/WebstormProjects/angular2-seed/src/app/services/todo-service.ts:6:17 
Generic type 'Array<T>' requires 1 type argument(s).

ERROR in [default] /Users/testguy/WebstormProjects/angular2-seed/src/app/services/todo-service.ts:8:14 
Generic type 'Array<T>' requires 1 type argument(s).

ERROR in [default] /Users/testguy/WebstormProjects/angular2-seed/src/app/services/todo-service.ts:12:18 
Generic type 'Array<T>' requires 1 type argument(s).
Run Code Online (Sandbox Code Playgroud)

Pan*_*kar 11

Array在定义它时你真的需要提到你想要的那种,MyClass可以是string/ number(数据类型)

export class TodoService {

  private _todos:Array<MyClass> = [];

  get todos():Array<MyClass> {
    return this._todos;
  }

  set todos(value:Array<MyClass>) {
    this._todos = value;
  }

}
Run Code Online (Sandbox Code Playgroud)