2013-06-26 2 views
2

Comme je l'ai lu du tapuscrit maintenant, vous pouvez exporter des classes comme ceci:Export d'interface de type 0: 0. c'est possible?

// client.ts 
    class Client { 
     constructor(public name: string, public description: string) { } 
    } 
    export = Client; 

// app.ts 
import MyClient = require('./client'); 
var myClient = new MyClient("Joe Smith", "My #1 client"); 

Mais, est-il possible d'exporter des interfaces ?.

En ce moment, je me fais une erreur en disant:

erreur TS1003: Identificateur attendu.

lorsque je tente de faire quelque chose comme ceci:

// INotifier.ts 
    interface INotifier { 
     // code 
    } 
    export = INotifier; 

Répondre

4

Je l'ai essayé dans Visual Studio et cela fonctionne pour moi, en utilisant la syntaxe import (réponse mis à jour pour refléter les changements dans la langue dactylographiée):

file1.ts

interface IPoint { 
    getDist(): number; 
} 

export = IPoint; 

app.ts

// Obsolete syntax 
//import example = module('file1'); 

// Newer syntax 
import example = require('file1'); 

class Point implements example { 
    getDist() { 
     return 1; 
    } 
} 

Remarque supplémentaire: vous ne pourrez pas utiliser les importations de style ECMAScript 6 dans cette situation, car elles ne fonctionnent qu'avec des classes et des modules.

//Won't work because it resolves to a "non-module entity" 
import * as example from 'file1'; 
+0

Oui, vous aviez raison, j'ai fait une faute de frappe. Merci :) – Boogie

+2

Toutefois, l'exportation d'une interface ne fournit actuellement pas Intellisense dans Visual Studio. Vous devez faire: '' var r: IPoint; export = r; '' pour obtenir Intellisense. –

+1

merci, résolu mon problème <3 –

Questions connexes