2013-06-26 41 views
2

当我从打字稿读,现在你可以导出类是这样的:typescript 0.9接口导出。可能吗?

// 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"); 

但是,有没有什么办法来导出接口?

现在,我得到一个错误说:

错误TS1003:标识符。

当我尝试做这样的事情:

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

回答

4

我在Visual Studio中尝试这样做,这个工作对我来说,使用import语法(答案更新,以反映在打字稿语言的变化):

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; 
    } 
} 

附加说明:在这种情况下,您将无法使用ECMAScript 6样式导入 - 因为它们仅适用于类和模块。

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

是的你是对的我犯了一个错字错误。谢谢:) – Boogie

+2

但是,导出界面目前不提供Visual Studio中的Intellisense。你必须这样做:'var r:IPoint; export = r;''来获得Intellisense。 –

+1

谢谢,解决了我的问题<3 –