2017-02-18 5 views
2

Ich bin ein Novoice in Typoskript.verschiedene Import-und Export-Form von Typoskript

export default class Foo {} 
/* or */ 
class Foo {} 
export = Foo; 
/* or */ 
export class Foo { } 

Und den Unterschied zwischen dieser Form von Einfuhr:

import x = require('y'); 
import x from 'y'; 
import { x } from 'y' 
import * as x from 'y'; 

Und wenn zu verwenden, jede von ihnen kann mir jemand den Unterschied zwischen diesem Export erklären?

Antwort

2

Es ist alles in der modules docs page bedeckt:

Default exports

export default class Foo {} 
// and 
import x from 'y'; 

Jedes Modul einen Standardexport optional exportieren. Standardexporte sind mit dem Schlüsselwort default gekennzeichnet; und es kann nur einen Standard Export pro Modul geben. Standardexporte werden mit einem anderen Importformular importiert.

Export =

export = Foo; 
// and 
import x = require('y'); 

Beide Commonjs und AMD haben in der Regel das Konzept einer Exporte Objekt, welches alle Exporte aus einem Modul enthält.

Sie unterstützen auch das Ersetzen des Exportobjekts durch ein benutzerdefiniertes einzelnes Objekt . Standardausfuhren sollen als Ersatz für dieses Verhalten dienen Verhalten; Die beiden sind jedoch nicht kompatibel. TypeScript unterstützt export = um den traditionellen CommonJS- und AMD-Workflow zu modellieren.

Die Syntax export = gibt ein einzelnes Objekt an, das aus dem Modul exportiert wird. Dies kann eine Klasse, Schnittstelle, Namespace, Funktion oder enum sein.

Beim Importieren eines Moduls mit export =, TypScript-spezifischer Import, muss = require ("module") verwendet werden, um das Modul zu importieren.

Die anderen Formen Sie enthalten:

export class Foo { } 
// and 
import { x } from 'y' 
import * as x from 'y'; 

die normale Form der export und import sind.
Es basiert auf der ES6-Import/Export-Syntax, weitere Informationen finden Sie auch in MDN: import/export.