
上QQ阅读APP看书,第一时间看更新
Creating a stack
Since the code for an Angular application is now in TypeScript, we can further optimize the stack that we created. Using TypeScript makes the code more readable thanks to the private variables that can be created in a TypeScript class.
So, our TypeScript-optimized code would look something like the following:
export class Stack {
private wmkey = {};
private items = new WeakMap();
constructor() {
this.items.set(this.wmkey, []);
}
push(element) {
let stack = this.items.get(this.wmkey);
stack.push(element);
}
pop() {
let stack = this.items.get(this.wmkey);
return stack.pop();
}
peek() {
let stack = this.items.get(this.wmkey);
return stack[stack.length - 1];
}
clear() {
this.items.set(this.wmkey, []);
}
size() {
return this.items.get(this.wmkey).length;
}
}
To use the Stack created previously, you can simply import the stack into any component and then use it. You can see in the following screenshot that as we made the WeakMap() and the key private members of the Stack class, they are no longer accessible from outside the class:
>

Public methods accessible from the Stack class