Πώς να εκτελέσει ξεχωριστές TS φακέλους για TSC;

ψήφοι
1

Έκανα δύο γραφομηχανή αρχεία A.tsκαι TestA.ts.

A.ts

class A {
    constructor( private name : string ){}
    disp(){ console.log( this.name ); }
}

TestA.ts

/// <reference path=A.ts/>
var a1 = new A( Jun );
a1.disp();
  • tsc TestA.ts
    ΕΝΤΑΞΕΙ. Κάνει A.js και TestA.js.

  • tsc TestA.ts -e
    NG. «RefenceError: Aδεν ορίζεται»

  • tsc A.ts TestA.ts -e
    θέτει επίσης το ίδιο λάθος

Πού μπορώ να πάει στραβά;

Δημοσιεύθηκε 04/10/2012 στις 14:07
πηγή χρήστη
Σε άλλες γλώσσες...                            


2 απαντήσεις

ψήφοι
4

/// <reference path="A.ts"/>χρησιμοποιείται μόνο κατά τη μεταγλώττιση για την αναφορά τύπων σε ένα άλλο αρχείο. Όταν χρησιμοποιείτε αυτό το κατασκεύασμα, γραφομηχανή υποθέτει ότι οι τύποι θα με κάποιο τρόπο να είναι ήδη διαθέσιμες κατά το χρόνο εκτέλεσης. Δηλαδή, είστε υπεύθυνοι για την τοποθέτησή τους τον εαυτό.

Αυτό που θέλουν να κάνουν είναι αναφορά τα άλλα αρχεία χρόνου εκτέλεσης . Αυτό γίνεται με τη χρήση στοιχείων και η importκαι exportτις λέξεις-κλειδιά.

Δοκιμάστε αυτό:

A.ts

export class A {   
  constructor(private name : string ) {}
  disp() {
    console.log(this.name);
  }
}

TestA.ts

import a = module('./a');
var a1 = new a.A( "Jun" );
a1.disp();

Στη συνέχεια, μπορείτε να χρησιμοποιήσετε tsc TestA.ts -eγια να καταρτίσει και να εκτελέσει τον κώδικα.

Απαντήθηκε 04/10/2012 στις 15:52
πηγή χρήστη

ψήφοι
1

Έχετε μια πλευρά σφάλμα στον κώδικα σας (λείπει ένα «)»). Αυτός συγκεντρώνει:

class A {   
  constructor(private name : string ) {}
  disp() {
    console.log(this.name);
  }
}

ΕΠΕΞΕΡΓΑΣΙΑ :

Όσον αφορά την αρχική σας prob, θα πρέπει να εξάγει την πρώτη μονάδα στη συνέχεια την εισαγωγή στο δεύτερο αρχείο σας.

Θα χρειαστεί να χρησιμοποιήσετε έναν εξωτερικό φορτωτή μονάδα (όπως RequireJS), προκειμένου να είναι σε θέση να την εκτελέσει ως compiler θα εφαρμόσει μια κλήση απαιτούν λειτουργία (όπως μονάδα CommonJS).

Δείτε: Πώς ενότητα Φόρτωση Εργασία με γραφομηχανή

A.ts

export class A {
  constructor(private name : string ){}
  disp() {
    console.log(this.name);
  }
}

TestA.js

var A = require("./A")
var a1 = new A.A("Jun");
a1.disp();
Απαντήθηκε 04/10/2012 στις 15:06
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more