2015-07-28 50 views
7

Es könnte ein Missverständnis von meiner Seite sein. In Typescript 1.4 exportieren wir Importklassen, aber als ich meinen Code auf Typoskript 1.5 aktualisiert habe, hat sich das Verhalten geändert.Typoskript 1.5 Klassen exportieren/importieren

Hier ist, wie es funktioniert in TS 1,4

LanguageForm.ts

import AbstractForm = require('../components/AbstractForm'); 

class LanguageForm extends AbstractForm { 
    buildPanel(){ 

    } 
} 
export = LanguageForm; 

Von meinem Verständnis in TS 1.5 die syntaxt werden ändern muss:

import AbstractForm from '../components/AbstractForm'; 
export default class LanguageForm extends AbstractForm { 
    buildPanel(){ 

    } 
} 

Whith TS1.4 I könnte einfach unter new anrufen, damit es in einer dynamischen Einstellung funktioniert:

require(["LanguageForm"], (Form) => { 
    new Form() 
}); 

jetzt in TS 1.5 ich tun muss:

require(["LanguageForm"], (Form) => { 
    new Form.default() 
}); 

Meine Frage In all dem Beispiel ich die Dokumentation wurde den Export/Import-Module. Ist das der Weg, um Klassen zu exportieren/importieren? Kann ich die .default loswerden?

+0

[Dokumentation für die Einfuhr] (https://github.com/Microsoft/TypeScript-Handbook/blob/master/pages/Namespaces%20and%20Modules .md) –

Antwort

10

In dem ganzen Beispiel, das ich fand, war die Dokumentation Export/Import von Modulen. Ist das der Weg zum Exportieren/Importieren von Klassen

Verwenden Sie nicht export =. Statt Export:

export class LanguageForm extends AbstractForm { 
    buildPanel(){ 

    } 
} 

und Import:

import {LanguageForm} from '../components/LanguageForm'; 
+0

Setzen Sie die Import-Anweisung in die Klasse oder nach draußen? – Kokodoko