离子2:“属性'号''在类型'typeof”

时间:2016-12-28 09:02:01

标签: javascript android angular typescript ionic2

我写了一篇关于问题的新帖子,以提供更多细节。

我尝试在我的离子2项目中创建一个类,我使用这段代码:

import { Component } from '@angular/core';

@Component({
    templateUrl: 'field.html'
})

export class test {
    x : number;
    constructor(x : number){
        this.x = x;
    }
}

我想在我的其他组件中使用它。在我的终端中使用“离子服务”进行编译时,它可以工作。但是当我尝试在我的Android手机上编译时,我有这个错误:

[09:54:06]  Error at C:/xampp/htdocs/AppFineMobile/.tmp/classes/fieldSpecs/test.ngfactory.ts:42:71
[09:54:06]  Property 'number' does not exist on type 'typeof
            "C:/xampp/htdocs/AppFineMobile/.tmp/classes/fieldSpecs/test"'.
[09:54:06]  ngc failed
[09:54:06]  ionic-app-script task: "build"
[09:54:06]  Error: Error

npm ERR! Windows_NT 10.0.14393
npm ERR! argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "run" "build"
npm ERR! node v7.0.0
npm ERR! npm  v3.10.8
npm ERR! code ELIFECYCLE
npm ERR! ionic-hello-world@ build: `ionic-app-scripts build`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the ionic-hello-world@ build script 'ionic-app-scripts build'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the ionic-hello-world package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     ionic-app-scripts build
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs ionic-hello-world
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls ionic-hello-world
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     C:\xampp\htdocs\AppFineMobile\npm-debug.log

我不明白为什么。首先,我在提供程序文件上尝试相同的代码,但同样的问题。

有人有什么想法吗?

2 个答案:

答案 0 :(得分:2)

当一个类用@component修饰时,这些类是由angular Dependency Injection框架创建的,它试图从构造函数参数的类型中找到提供者作为查找它的关键。

stringnumberbooleanObject等原始类型不能用作密钥。我不确定为什么它没有失败ionic serve。您可以详细了解DI here.

答案 1 :(得分:0)

我找到了解决方案,但我认为这不是我真正需要做的事情:

import { Component } from '@angular/core';

@Component({
    templateUrl: 'field.html'
})

export class test {
    x : number;
    constructor(){}

    initClass(x : number) {
        this.x = x;
    }
}

我的构造函数保持为空,我在另一个方法上写参数。这是工作,但如果有人真正纠正我的问题,我说是的! :d