c# - Hur man anpassar typen i Typewriter


Skrivmaskinen genererar datumtyp i TypeScript för DateTime-typer i C#, jag vill ändra det till "string", men kan inte göra det

här är vad jag försökte i .tst

string TypeConverter(Type type){
    if(type.Name == "Month") return "string";
    return type.Name;
}

Och sedan i den senare delen försökte

//1
export class $Name {$Properties[
    public $Name: TypeConverter($Type);]
}

//2
export class $Name {$Properties[
    public $Name: TypeConverter;]
}

//3
export class $Name {$Properties[
    public $Name: $TypeConverter;]
}

Men ingen av dem fungerar

Svar #1

Anpassade metoder kallas precis som vilken annan egenskap som helst med $MethodName med det aktuella sammanhanget som parameter. Så i ditt exempel finns det två sätt att lösa problemet.

Ändra metodens parameter så att den matchar sammanhanget:

${
    string TypeConverter(Parameter parameter)
    {  
        if(parameter.Type.Name == "Month")
            return "string";  
        return parameter.Type.Name;  
    }  
}  
export class $Name {$Properties[  
    public $Name: $TypeConverter;]  
}

Eller, anropa metoden från ett Type-sammanhang:

${
    string TypeConverter(Type type)
    {  
        if(type.Name == "Month")
            return "string";  
        return type.Name;  
    }  
}  
export class $Name {$Properties[  
    public $Name: $Type[$TypeConverter];]  
}

Relaterade artiklar