3
如何使用Typescript 1.4.0獲取對象的屬性類型。如何通過使用Typescript語言服務獲取屬性信息
我正在尋找類似於C#的東西,它有可能查找對象的屬性。
var properties = typeof(T).GetProperties();
foreach(var property in properties){}
我至今是:
var ls = ts.createLanguageService(host, ts.createDocumentRegistry())
var nav = ls.getNavigationBarItems(host.fileName);
給出的示例接口:
interface Example {
firstname: string;
lastname: string;
age: string;
}
打字稿語言服務返回結果:
{
"NavigationBarItems":[
{
"text":"Example",
"kind":"interface",
"kindModifiers":"",
"spans":[
{
"start":0,
"length":83
}
],
"childItems":[
{
"text":"age",
"kind":"property",
"kindModifiers":"",
"spans":[
{
"start":69,
"length":12
}
],
"childItems":[
],
"indent":0,
"bolded":false,
"grayed":false
},
{
"text":"firstname",
"kind":"property",
"kindModifiers":"",
"spans":[
{
"start":24,
"length":18
}
],
"childItems":[
],
"indent":0,
"bolded":false,
"grayed":false
},
{
"text":"lastname",
"kind":"property",
"kindModifiers":"",
"spans":[
{
"start":47,
"length":17
}
],
"childItems":[
],
"indent":0,
"bolded":false,
"grayed":false
}
],
"indent":0,
"bolded":false,
"grayed":false
}
]
}
信息我缺少的是類型(str數字,地圖<>,任何),並且如果它是數組或對象,例如
"text":"lastname",
"kind":"property",
"type":"string", //string,number,Map<>,any
任何想法如何實現這一目標?
非常感謝您的幫助。
https://atom.io/packages/atom-typescript這些工具提示只是很好,使用烤寬麪條服務「getQuickInfo」 – basarat 2015-02-24 20:54:05
此外,你可以從語言服務方法'getProgram' – basarat 2015-02-24 20:55:04
得到程序你是絕對正確的。我可以使用getQuickInfoAtPosition來獲取我需要的信息,但是在查找其位置上的每個項目時有點不舒服。感謝關於'getProgram'的註釋,你知道當我想使用'getProgram'時是否需要實現編譯器主機嗎?還是我可以留在languageservicehost? – Karl2011 2015-02-24 21:52:12