使用带打字机的属性过滤要翻译的文件

时间:2017-04-29 21:00:34

标签: typescript typewriter

我想在一个项目中使用Typewriter,我使用WebEssentials在TypeScript中翻译了很多C#文件。
如何配置模板以仅转换包含属性的类文件?

[TypescriptModule("Palmare.Contatori")]
public class ContatoreRequest
{
    public int idProgetto { get; set; }
    public string codiceEneltel { get; set; }
}

1 个答案:

答案 0 :(得分:0)

这是我用来过滤掉Models命名空间中具有TypeScript属性的类文件。它将忽略具有TypeScriptIgnore属性

的属性
${
    // Enable extension methods by adding using Typewriter.Extensions.*
    using Typewriter.Extensions.Types;

    // Uncomment the constructor to change template settings.
    bool InModelsNameSpace(Class c)
    {
        if(c.Attributes.Any(a=>a.Name == "TypeScript") && c.Namespace.Contains("Models"))
        {
            return true;
        }
        else{
            return false;
        }
    }

    bool PropertyIsNotIgnored(Property p)
    {
        if(p.Attributes.Any(a => String.Equals(a.name, "TypeScriptIgnore", StringComparison.OrdinalIgnoreCase)
        || String.Equals(a.name,"NotMapped",StringComparison.OrdinalIgnoreCase)))
            return false;
        return true;

    }


    // Custom extension methods can be used in the template by adding a $ prefix e.g. $LoudName

}
module MyApp {

    $Classes($InModelsNameSpace)[
    export class $Name {
        $Properties($PropertyIsNotIgnored)[
        // $LoudName
        public $name: $Type = $Type[$Default];]
    }]


}