簡體   English   中英

語法錯誤:意外令牌{在執行TS應用時

[英]Syntax error: Unexpected token { on executing a TS app

我在TypeScript中有以下代碼:

import { Document, Schema, Model, model } from "mongoose";
import { IUser } from "../interfaces/IUser";

export interface IUserModel extends IUser, Document {
}

var UserSchema: Schema = new Schema({
    name: String,
    username: String,
    password: String,
    email: String
});

export const User: Model<IUserModel> = model<IUserModel>("User", UserSchema);

然后我在控制器中使用它。 當我編譯TS應用程序(tsc app.ts)時,它可以正常編譯。 然后,當我在終端中鍵入“ node app.js”時,出現此錯誤:

..\BlocG\models\user.ts:1
(function (exports, require, module, __filename, __dirname) { import { Document, Schema, Model, model } from "mongoose";
                                                                     ^

SyntaxError: Unexpected token {
    at new Script (vm.js:79:7)
    at createScript (vm.js:251:10)
    at Object.runInThisContext (vm.js:303:10)
    at Module._compile (internal/modules/cjs/loader.js:656:28)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:699:10)
    at Module.load (internal/modules/cjs/loader.js:598:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:537:12)
    at Function.Module._load (internal/modules/cjs/loader.js:529:3)
    at Module.require (internal/modules/cjs/loader.js:636:17)
    at require (internal/modules/cjs/helpers.js:20:18)
    at Object.<anonymous> (E:\Business\Cevian\CevianPrep\BlocG\data\db.ts:26:1)
    at Module._compile (internal/modules/cjs/loader.js:688:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:699:10)
    at Module.load (internal/modules/cjs/loader.js:598:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:537:12)
    at Function.Module._load (internal/modules/cjs/loader.js:529:3)

使它變得更加奇怪的是,我在控制器中有這樣的導入:

import { Router, Request, Response } from 'express';
import { IUserModel } from '../models';

...並且可以毫無問題地進行編譯。 我曾經執行邏輯時沒有任何問題。

請注意,錯誤不是針對import關鍵字,而是大括號。

請幫我解決這個問題! 提前致謝!

然后,當我在終端中鍵入“ node app.js”時,出現此錯誤:

將您的tsconfig module選項更改為在節點(本機)和瀏覽器(例如使用webpack)中都可以使用的選項:

"module": "commonjs"

事實證明,基本問題是我正在這樣編譯:

tsc app

不只是寫作

tsc

這導致我的編譯類型與同一文件夾中的js混合在一起。

另外,我直接從[name] .ts文件導入,我應該只在其中使用文件名。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM