2013-07-09 96 views
0

考慮下面的代碼:我可以使用typescript.js來做一些語言解析嗎?

class Foo 
{ 
    Bar(name: string): void 
    { 
     var x = name; 
    } 

    FooBar(): void 
    { 
    } 
} 

使用typescript.js什麼的,是有可能列出類Foo的所有方法?怎麼樣?

如果可能我想這樣做,而不必編譯和運行Javascript。如果沒有辦法,我會試圖用正則表達式我的運氣...

+0

我有一個版本0.8的打字遊樂場:http://basarat.github.io/TypeScriptEditor/你可以使用源:https://github.com/basarat/TypeScriptEditor – basarat

+0

@BASarat你可以更具體?哪個文件做我想做的事? – BrunoLM

+0

請記住,TypeScript是JavaScript的超集,所以這將非常困難(例如:看看Google在Closure Compiler中做這件事有多困難)。但是,如果您只想反思TypeScript類,則可能會破解TypeScript編譯器,使用TS解析器收集定義類的所有位置,然後合併方法列表。可以說它比純JavaScript更容易,但是它不會找到以JavaScript方式向類中添加新方法的地方。 –

回答

1

你不需要typescript.js或任何類似,只使用getOwnPropertyNames

一個打字稿類
var classMemberNames = Object.getOwnPropertyNames(Foo.prototype); 

方法出現在表示類的構造函數的原型屬性上。

+0

這需要編譯和運行...我真的想避免這種情況。 – BrunoLM

+0

@BrunoLM你通常會編譯+運行做反射。你能用另一種語言(C#,Java)給出你想要做什麼的例子嗎? – zcrar70

+0

@ zcrar70我需要的是解析語言......我需要知道這些方法,我想知道它們而不必編譯和運行。如果沒有辦法,我會訴諸正則表達式。 – BrunoLM

相關問題