Most of what you need to know can be found at https://luau-lang.org/syntax
Any Roblox Lua script is still fully compatible with Luau, so all tutorials are still valid.
For "strict" mode, one thing I recently found out (that is not currently documented at that site) is that if you want to type-cast (to tell Roblox the type of some value), you need to use ::, such as in:
local function describe(x:Instance, isBasePart:boolean?)
if isBasePart then
print(x.Name, x.Transparency)
print(x.Name, (x::BasePart).Transparency)
else
print(x.Name)
end
end
describe(workspace)
describe(workspace.Baseplate, true)
If you are using strict mode, the Script Analysis window will be likely to tell you if something doesn't look right, which can help prevent errors, once you learn how to use it. Tip: you can say that something is of type any to silence type warnings on certain variables while keeping type checking for the rest of the script.