angular - Eroare de sintaxă TypeScript la import


Încerc să învăț TypeScript și Angular, dar există o eroare ciudată care continuă să mă deranjeze.

Pe scurt, import o clasă numită Point din modulul point. Eroarea sugerează că o acoladă este greșită. Eroarea indică declarația de import din main.ts (linia 1).

În plus, am fișierele .ts și .js într-un folder. Acest folder nu are un fișier tsconfig.json.

Transpilez și rulez codul cu:

tsc main.ts --target ES2016 && node main.js

Vizez ES2016 pentru suportul proprietăților getter și setter.

eroare

main.js:1
(function (exports, require, module, __filename, __dirname) { import { Point } from './point';

SyntaxError: Unexpected token {
    at new Script (vm.js:74:7)
    at createScript (vm.js:246:10)
    at Object.runInThisContext (vm.js:298:10)
    at Module._compile (internal/modules/cjs/loader.js:670:28)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10)
    at Module.load (internal/modules/cjs/loader.js:612:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:551:12)
    at Function.Module._load (internal/modules/cjs/loader.js:543:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:744:10)
    at startup (internal/bootstrap/node.js:238:19)

main.ts

import { Point } from './point';

let point = new Point(1);
point.draw();
let x = point.x;
console.log(x);
point.y = 500;
point.draw();

point.ts

export class Point {
    constructor(private _x?: number, private _y?: number) { }

    get x() {
        return this._x;
    }

    set y(value) {
        if (value < 0)
            throw new Error('New X must be 0 or higher.');

        this._y = value
    }

    draw() {
        console.log('X: ' + this._x + ', Y: ' + this._y);
    }
}

Răspuns #1

această opțiune tsconfig.json.

{
   "compilerOptions": {
    "target": "ES2016",
    "module": "commonjs",
    "outDir": "./dest",
    "strict": true,
    "esModuleInterop": true
  }
}

și am compilat astfel tsc --p tsconfig.json și totul pare să funcționeze bine.

versiune typescript: Versiunea 2.9.2 versiune node: v10.2.0