2015-07-28 23 views
7

To może być nieporozumienie z mojej strony. W maszynopisie 1.4 używamy do eksportowania klas importu, ale kiedy zaktualizowałem swój kod do maszynopisu 1.5, zachowanie się zmieniło.Typescript 1.5 eksportowanie/importowanie klas

Oto jak to działa w TS 1,4

LanguageForm.ts

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

class LanguageForm extends AbstractForm { 
    buildPanel(){ 

    } 
} 
export = LanguageForm; 

Z mojego zrozumienia w TS 1.5 syntaxt należy zmodyfikować do:

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

    } 
} 

Whith TS1.4 I można po prostu zadzwonić pod numer new, aby działał w trybie dynamicznym:

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

teraz w TS 1.5 muszę zrobić:

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

Moje pytanie W całej przykład uważam, że dokumentacja została eksportowania/importowania modułów. Czy to jest sposób na eksportowanie/importowanie klas? Czy mogę się pozbyć .default?

+0

[Dokumentacja import] (https://github.com/Microsoft/TypeScript-Handbook/blob/master/pages/Namespaces%20and%20Modules .md) –

Odpowiedz

10

We wszystkich przykładach znalazłem dokumentację eksportującą/importującą moduły. Czy to jest sposób na eksport/import klas

Nie używaj export =. Zamiast eksport:

export class LanguageForm extends AbstractForm { 
    buildPanel(){ 

    } 
} 

i import:

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

Czy umieszczasz deklarację importu wewnątrz klasy lub na zewnątrz? – Kokodoko