2015-07-28 13 views
7

Potrebbe essere un equivoco da parte mia. In Typescript 1.4 usiamo per esportare le classi di importazione, ma quando ho aggiornato il mio codice al dattiloscritto 1.5 il comportamento è cambiato.Dattiloscritto 1.5 esportazione/importazione classi

Ecco come funzionava in TS 1,4

LanguageForm.ts

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

class LanguageForm extends AbstractForm { 
    buildPanel(){ 

    } 
} 
export = LanguageForm; 

Dalla mia comprensione nella TS 1.5 del syntaxt deve essere modificare per:

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

    } 
} 

Whith TS1.4 I potrebbe semplicemente effettuare una chiamata su new affinché funzioni in modo dinamico:

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

ora in TS 1.5 Ho bisogno di fare:

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

La mia domanda In tutti l'esempio che ho trovato la documentazione è stata esportazione/importazione moduli. È questo il modo di esportare/importare classi? Posso liberarmi di .default?

+0

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

risposta

10

In tutti gli esempi ho trovato che la documentazione stava esportando/importando moduli. È questo il modo di esportare/importare le classi

Non utilizzare export =. Invece di esportazione:

export class LanguageForm extends AbstractForm { 
    buildPanel(){ 

    } 
} 

e importazione:

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

Metti la dichiarazione di importazione all'interno della classe o all'esterno? – Kokodoko