isTimeVarying was to check if the property has keyframes.... but in your case you can remove that part. Not needed. If I put this in a jsx file it seems to work fine: var comp = app.project.activeItem;
// Create text layer
var textLayer = comp.layers.addText("Bounce Text");
// Customizing text properties
var textProp = textLayer.property("Source Text");
var textDocument = textProp.value;
var firstCharRange = textDocument.characterRange(0);
textDocument.resetCharStyle();
textDocument.fontSize = 50;
textDocument.fillColor = [1, 1, 1];
textDocument.strokeColor = [0, 0, 0];
textDocument.strokeWidth = 2;
textDocument.strokeOverFill = true;
textDocument.applyStroke = true;
textDocument.applyFill = true;
textDocument.text = "Let's try this";
textDocument.justification = ParagraphJustification.CENTER_JUSTIFY;
textDocument.tracking = 50;
// Change the color of the first character to blue
firstCharRange.fillColor = [0, 0, 1]; // Blue color
textProp.setValue(textDocument);
... View more