Классы TypeScript не могут быть разрешены из файла компонента в NativeScript - PullRequest
0 голосов
/ 11 июля 2019

Я столкнулся с большой проблемой.Я уже опубликовал аналогичный вопрос, но не получил никакого ответа.

Я перенес веб-приложение, разработанное для Angular версии 7, в мобильное приложение NativeScript.

В веб-приложении уже было несколько классов TypeScriptв пути src / app / model .

Пример использования User.ts в пути src / app / model / 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() {}

}

Я пытаюсь импортировать мой User.ts файл в first-step.component.tns.ts , но выдает ошибку:

Произошло необработанное исключение в "основном" потоке.java.lang.RuntimeException: невозможно создать приложение com.tns.NativeScriptApplication: com.tns.NativeScriptException:

Ошибка вызова функции модуля

Невозможно скомпилировать /data/data/org.nativescript.ngsample/files/app/bundle.js

SyntaxError: Неожиданный токен!Файл: "file: ///data/data/org.nativescript.ngsample/files/app/bundle.js, строка: 465, столбец: 28

StackTrace: Frame: функция: 'require', файл: '', строка: 1, столбец: 266 Кадр: функция: '', файл: 'file: ///data/data/org.nativescript.ngsample/files/app/starter.js', строка: 3, столбец: 1 Кадр: функция: 'require', файл: '', строка: 1, столбец: 266

SyntaxError: Неожиданный токен! Файл: ", строка: 1, столбец: 265

StackTrace: Frame: функция: 'require', файл: '', строка: 1, столбец: 266 Frame: function: '', файл: 'file: ///data/data/org.nativescript.ngsample/files/app/starter.js ', строка: 3, столбец: 1 Кадр: функция:' require ', файл:' ', строка: 1, столбец: 266

SyntaxError: Неожиданный токен!Файл: ", строка: 1, столбец: 265

StackTrace: Frame: function: 'require', file: '', line: 1, column: 266 Frame: function: '', file: '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 (собственный метод) на 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: Неожиданный токен!Файл: "file: ///data/data/org.nativescript.ngsample/files/app/bundle.js, строка: 465, столбец: 28

StackTrace: Frame: function: 'require', file: '', строка: 1, столбец: 266 Кадр: функция: '', файл: 'file: ///data/data/org.nativescript.ngsample/files/app/starter.js', строка: 3, столбец: 1 Frame: функция: 'require', file: '', строка: 1, столбец: 266

SyntaxError: неожиданный токен! File: ", строка: 1, столбец: 265

StackTrace: Frame: функция: 'require', файл: '', строка: 1, столбец: 266 Frame: function: '', файл: 'file: ///data/data/org.nativescript.ngsample/files/app/starter.js ', строка: 3, столбец: 1 Кадр: функция:' require ', файл:' ', строка: 1, столбец: 266

SyntaxError: Неожиданный токен!Файл: ", строка: 1, столбец: 265

StackTrace: Кадр: функция: 'require', файл: '', строка: 1, столбец: 266 Кадр: функция: '',file: 'file: ///data/data/org.nativescript.ngsample/files/app/starter.js', строка: 3, столбец: 1 Кадр: функция: 'require', файл: '', строка: 1, столбец: 266

в com.tns.Runtime.runModule (собственный метод) в 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

My tsconfig.tns.json file:

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

Чего мне не хватает?

1 Ответ

0 голосов
/ 19 июля 2019

Попробуйте, например, объявить класс вашей модели в конструкторе, например: -

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();
    }
}
...