Typescript的getter和setter错误

14

好的,这是我第一天使用 TypeScript 进行 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个回答

12
你在定义一个 Array 时应该明确指出数组的类型,MyClass 可以是字符串或数字(数据类型)。

代码

export class TodoService {

  private _todos:Array<MyClass> = [];

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

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

}

如果其他人也遇到了这个问题,你需要将类型定义为数组,然后在<>内创建一个类,该类是描述数组项结构的模型。 - rtn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接