我使用Roslyn来解析som C#文件,以生成TypeScript类型。
var source = System.IO.File.ReadAllText(pathToCSharpFile);
var tree = CSharpSyntaxTree.ParseText(source);
var root = (CompilationUnitSyntax) tree.GetRoot();
我从根中递归地遍历树,以获取有关属性,字段和嵌套类的信息。
namespace MyNamespace
{
public class Foo
{
public Bar BarProp { get; set; }
public Baz BazProp { get; set; }
public class Bar
{
}
}
}
对此的TypeScript保护必须成为:
interface Foo {
barProp: Foo.Bar;
bazProp: Baz;
}
namespace Foo {
interface Bar {
}
}
我不知道如何确定BarProp的类型是嵌套类,以便在TypeScript定义中正确指定barProp的类型。
使用PropertyDeclarationSyntax,FieldDeclarationSyntax和ClassDeclarationSyntax时是否可以获得此信息,还是需要使用其他方法来推断正确的类型?