Required vs Optional
Difference between : and = in parameters
/#
## Required vs Optional Parameters
In TJS, the punctuation tells you everything:
| Syntax | Meaning |
|--------|---------|
| `param: 'value'` | **Required** - must be provided |
| `param = 'value'` | **Optional** - defaults to value |
The example value after `:` or `=` defines the type.
#/
test 'requires name and email' {
const user = createUser('Alice', 'alice@test.com')
expect(user.name).toBe('Alice')
expect(user.age).toBe(0) // default
}
function createUser(
name: 'anonymous',
email: 'user@example.com',
age = 0,
admin = false
): { name: 'anonymous', email: 'user@example.com', age: 0, admin: false } {
return { name, email, age, admin }
}
// Check the metadata
console.log('Params:', createUser.__tjs.params)
createUser('Alice', 'alice@example.com')