28 lines
1016 B
Markdown
28 lines
1016 B
Markdown
# JavaScript and TypeScript
|
|
|
|
You can write micro:bit programs in a subset of [TypeScript](https://www.typescriptlang.org), a superset of JavaScript.
|
|
Many micro:bit programs, especially at the beginner's level, are just plain JavaScript. TypeScript introduces class-based
|
|
object-oriented programming, such as:
|
|
|
|
```typescript
|
|
class Greeter {
|
|
greeting: string;
|
|
constructor(message: string) {
|
|
this.greeting = message;
|
|
}
|
|
greet() {
|
|
return "Hello, " + this.greeting;
|
|
}
|
|
}
|
|
|
|
let greeter = new Greeter("world");
|
|
basic.showString(greeter.greet())
|
|
```
|
|
|
|
This site is meant for teaching programming first, and JavaScript second. For this
|
|
reason, we have stayed away from concepts that are specific to JavaScript (for
|
|
example, prototype inheritance), and instead focused on ones common to most
|
|
modern programming languages (lexically scoped variables, functions, classes).
|
|
We leverage TypeScript's [type inference](/js/inference) so that
|
|
students need not specify types when clear from context.
|