无法从Angular 4中的模型类访问方法

时间:2018-04-19 10:59:42

标签: angular typescript ionic3

我正在尝试使用模型类中的方法,但它的抛出错误如

  

错误TypeError:act.sayHi不是函数

这是我的代码

  

模型类myModelClass.ts

    export interface IMymodel {
        name: string;
        address: string;
        age: number;
    }

    export class Mymodel implements IMymodel {
        name: string;
        address: string;
        age: number 

        constructor() {}

        sayHi(name): string {
            console.log('Hiii' + name);
            return 'Hiii'+name;
        }

    }
  

组件MyComponent.ts

import { IMymodel, Mymodel } from '../model/myModelClass.ts';

@Component({
    selector: 'my-component',
    templateUrl: 'myComponent.html'
})
export class MyComponent {

    ...

    prepareData(data: Array<IMymodel>): Array<IMymodel> {

         data.map((act: Mymodel) => {
             act.sayHi(act.name);
         });

         return data;
    } 

}

1 个答案:

答案 0 :(得分:3)

当您通过接口类型访问对象时,您还需要将sayHi方法签名放入接口,并且该类型缺少名为sayHi的方法。

export interface IMymodel {
    name: string;
    address: string;
    age: number;
    sayHi(name): string
}

和方法调用

prepareData(data: Array<IMymodel>): Array<IMymodel> {

     data.map((act: IMymodel) => {
         act.sayHi(act.name);
     });

     return data;
}