TypeScript
by Daniel Cheung
HTML
<div id="app"></div>
CSS
body {
background: #20262E;
padding: 20px;
font-family: Helvetica;
}
#app {
background: #fff;
border-radius: 4px;
padding: 20px;
transition: all 0.2s;
text-align: center;
}
TypeScript
interface Node {
toString: () => string
}
class Parenthesis implements Node {
left?: Node
constructor(left: Node) {
this.left = left
}
toString() {
return `(${this.left.toString()})`
}
}
abstract class BinaryOperator implements Node {
left?: Node
right?: Node
constructor(left: Node, right: Node) {
this.left = left
this.right = right
}
abstract getOperand(): string
toString() {
}
}
class Number implements Node {
value: number
constructor(value: number) {
this.value = value
}
toString() {
return this.value
}
}
const n = 4
const numbers = Array.from(Array(n).keys()).map(i => new Number(4))