【问题标题】:TypeScript classes cannot be resolved from a Component's file in NativeScriptTypeScript 类无法从 NativeScript 中的组件文件解析
【发布时间】:2019-07-11 09:22:45
【问题描述】:

我面临一个大问题。我已经发布了一个类似的问题,但我没有收到任何答案。

我将使用 Angular 7 开发的 Web 应用程序迁移到 NativeScript 移动应用程序。

Web 应用程序已经在路径 src/app/model 中有一些 TypeScript 类。

路径src/app/model/User.ts中的User.ts示例:

export class User {

  username: string;
  password: string;

}

我在路径中有一个组件 src/app/shared-modules/navigation/create-user/first-step/first-step.component.tns.ts

import { Injectable } from "@angular/core";
import { HttpClient, HttpHeaders } from "@angular/common/http";
import { User } from 'app/model/User';

@Injectable({
  providedIn: "root"
})
export class UserLoginService {
  user: User = new User();

  constructor() {}

}

我正在尝试在 first-step.component.tns.ts 中导入我的 User.ts 文件,但它会引发错误:

“主”线程上发生未捕获的异常。 java.lang.RuntimeException:无法创建应用程序 com.tns.NativeScriptApplication: com.tns.NativeScriptException:

调用模块函数出错

无法编译 /data/data/org.nativescript.ngsample/files/app/bundle.js

SyntaxError: Unexpected token !文件: “file:///data/data/org.nativescript.ngsample/files/app/bundle.js, 行:465,列:28

StackTrace:帧:函数:'require',文件:'',行:1,列:266 框架:功能:'', 文件:'file:///data/data/org.nativescript.ngsample/files/app/starter.js', 行:3,列:1 框架:函数:'require',文件:'',行:1, 栏目:266

SyntaxError: Unexpected token !文件:",行:1,列:265

StackTrace:帧:函数:'require',文件:'',行:1,列:266 框架:功能:'', 文件:'file:///data/data/org.nativescript.ngsample/files/app/starter.js', 行:3,列:1 框架:函数:'require',文件:'',行:1, 栏目:266

SyntaxError: Unexpected token !文件:",行:1,列:265

StackTrace:帧:函数:'require',文件:'',行:1,列:266 框架:功能:'', 文件:'file:///data/data/org.nativescript.ngsample/files/app/starter.js', 行:3,列:1 框架:函数:'require',文件:'',行:1, 栏目:266

在 android.app.ActivityThread.handleBindApplication(ActivityThread.java:5876) 在 android.app.ActivityThread.access$1100(ActivityThread.java:199) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1650) 在 android.os.Handler.dispatchMessage(Handler.java:106) 在 android.os.Looper.loop(Looper.java:193) 在 android.app.ActivityThread.main(ActivityThread.java:6669) 在 java.lang.reflect.Method.invoke(Native Method) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858) 引起:com.tns.NativeScriptException:

调用模块函数出错

无法编译 /data/data/org.nativescript.ngsample/files/app/bundle.js

SyntaxError: Unexpected token !文件: “file:///data/data/org.nativescript.ngsample/files/app/bundle.js, 行:465,列:28

StackTrace:帧:函数:'require',文件:'',行:1,列:266 框架:功能:'', 文件:'file:///data/data/org.nativescript.ngsample/files/app/starter.js', 行:3,列:1 框架:函数:'require',文件:'',行:1, 栏目:266

SyntaxError: Unexpected token !文件:",行:1,列:265

StackTrace:帧:函数:'require',文件:'',行:1,列:266 框架:功能:'', 文件:'file:///data/data/org.nativescript.ngsample/files/app/starter.js', 行:3,列:1 框架:函数:'require',文件:'',行:1, 栏目:266

SyntaxError: Unexpected token !文件:",行:1,列:265

StackTrace:帧:函数:'require',文件:'',行:1,列:266 框架:功能:'', 文件:'file:///data/data/org.nativescript.ngsample/files/app/starter.js', 行:3,列:1 框架:函数:'require',文件:'',行:1, 栏目:266

在 com.tns.Runtime.runModule(Native Method) 在 com.tns.Runtime.runModule(Runtime.java:624) 在 com.tns.Runtime.run(Runtime.java:616) 在 com.tns.NativeScriptApplication.onCreate(NativeScriptApplication.java:21) 在 android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1154) 在 android.app.ActivityThread.handleBindApplication(ActivityThread.java:5871) ... 8 更多

我的 tsconfig.tns.json 文件:

{
    "extends": "./tsconfig",
    "compilerOptions": {
        "module": "es2015",
        "moduleResolution": "node",
        "lib": [
            "es6",
            "dom"
        ],
        "baseUrl": "src",
        "paths": {
            "~/*": [
                "./*"
            ],
            "*": [
                "./node_modules/tns-core-modules/*",
                "./node_modules/*"
            ]
        }
    }
} 

我错过了什么?

【问题讨论】:

标签: android typescript nativescript nativescript-angular tsconfig


【解决方案1】:

尝试这样做,例如在构造函数中声明您的模型类,例如:-

import { Injectable } from "@angular/core";
import { HttpClient, HttpHeaders } from "@angular/common/http";
import { User } from 'app/model/User';

@Injectable({
 providedIn: "root"
})
export class UserLoginService {
    public user: User;

    constructor() {
      this.user = new User();
    }
}

【讨论】:

    猜你喜欢
    • 2018-12-06
    • 1970-01-01
    • 2018-06-07
    • 1970-01-01
    • 2022-09-27
    • 2018-05-25
    • 1970-01-01
    • 2021-07-02
    • 1970-01-01
    相关资源
    最近更新 更多