【问题标题】:Typescript getter and setter error打字稿getter和setter错误
【发布时间】:2016-04-16 13:30:30
【问题描述】:

好的,这是我第一天使用 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).

【问题讨论】:

    标签: typescript angular angular2-services


    【解决方案1】:

    在定义Array时,您确实需要提及您想要哪种MyClass,可以是string/number(datatype)

    代码

    export class TodoService {
    
      private _todos:Array<MyClass> = [];
    
      get todos():Array<MyClass> {
        return this._todos;
      }
    
      set todos(value:Array<MyClass>) {
        this._todos = value;
      }
    
    }
    

    【讨论】:

    • 如果其他人偶然发现这一点,您需要将类型定义为数组,然后在 中创建一个类,该类是描述数组项结构的模型。
    猜你喜欢
    • 2016-04-07
    • 2019-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多