项目作者: berhalak

项目描述 :
Typescript decorators
高级语言: TypeScript
项目地址: git://github.com/berhalak/dressup.git
创建时间: 2020-02-03T14:05:41Z
项目社区:https://github.com/berhalak/dressup

开源协议:MIT License

下载


dressup

Typescript decorators

  1. import { mix, decorate } from "dressup"
  2. test('decorator demo', () => {
  3. class Base {
  4. constructor(private num: number = null) {
  5. }
  6. baseMethod() {
  7. return this.num;
  8. }
  9. }
  10. @decorate()
  11. class Derive extends Base {
  12. constructor(private inner: Base) {
  13. super(null);
  14. }
  15. deriveMethod() {
  16. return this.baseMethod() + 2;
  17. }
  18. }
  19. const bob = new Derive(new Base(10));
  20. expect(bob.baseMethod()).toBe(10);
  21. expect(bob.deriveMethod()).toBe(12);
  22. })
  23. test('mix demo', () => {
  24. class Rename {
  25. rename(name: string) {
  26. (this as any).name = name;
  27. return this;
  28. }
  29. }
  30. class Printable {
  31. print() {
  32. return (this as any).name;
  33. }
  34. }
  35. class Model extends mix(Rename, Printable) {
  36. name = "test";
  37. }
  38. expect(new Model().print()).toBe("test");
  39. expect(new Model().rename("hello").print()).toBe("hello");
  40. })