打字稿getter和setter错误

时间:2016-04-16 13:30:31

标签: typescript angular angular2-services

好的,这是我第一天使用打字稿做一些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;
  }

}

任何人都可以解释为什么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).

1 个答案:

答案 0 :(得分: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;
  }

}