ScratchScript 1.0 Help

Types

ScratchScript is a strongly typed language, meaning once you assign a variable a type, it cannot be changed later. There are 5 basic types which one will frequently use during development.

Scratch also has a set of types which isn't enforced to the user, but is required for project files to be correctly loaded. Still, Scratch can be considered a weakly-typed language.

Number

The number type is identical to that of JavaScript's/Typescript's, since that's what the Scratch3 VM uses internally.

number represents a double-precision 64-bit binary format IEEE 754 value, which means any number between -(2^53 - 1) and 2^53 - 1 is valid.

All of these number expressions are valid in ScratchScript:

  • 10

  • 10.0

  • -123.45

  • -1234

String

A string literal can be defined via single quotes ('hi!') or double quotes ("hello!"). Backticks (`hey!`) are not supported.

To write a single quote in a string literal defined with single quotes, either replace the literal with a double-quoted one, or use \':

'it's an apple'
"it's an apple" 'it\'s an apple'

Boolean

boolean is a type that doesn't exist in Scratch. While true and false keywords exist in ScratchScript, internally ScratchIR considers them strings. Still, you can define a boolean variable and use it in conditions and other places:

let condition = 2 > 1; // true while(condition) { // ... }

List

List is the only "generic" type which can hold any other basic type inside of it. Unlike TypeScript, where arrays are defined via square brackets (type[]), ScratchScript uses List<type>.

Lists can also be 2-dimensional, or even 3-dimensional:

let one: List<number> = [1, 2, 3]; let two: List<List<number>> = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]; // ...and so on

Color

color expressions are defined in the #RRGGBB format:

let red = #FF0000; // pure red (255, 0, 0)
Last modified: 02 мая 2024