Skip to content

Instantly share code, notes, and snippets.

@iTonyYo
Created August 1, 2022 07:16
Show Gist options
  • Select an option

  • Save iTonyYo/b186e70f40d825407fc7b0ea37b18b3c to your computer and use it in GitHub Desktop.

Select an option

Save iTonyYo/b186e70f40d825407fc7b0ea37b18b3c to your computer and use it in GitHub Desktop.
《TypeScript 编程》5.13 练习题.3
type Shoe = {
purpose: string
}
type ShoeFactory = {
create(t: 'boot'): Boot
create(t: 'balletFlat'): BalletFlat
create(t: 'sneaker'): Sneaker
create(t: string): Boot
}
class Boot implements Shoe {
purpose = 'Boot'
}
class BalletFlat implements Shoe {
purpose = 'BalletFlat'
}
class Sneaker implements Shoe {
purpose = 'Sneaker'
}
let abc:ShoeFactory = {
create(t: string):Shoe {
switch(t) {
case 'boot': return new Boot()
case 'balletFlat': return new BalletFlat()
case 'sneaker': return new Sneaker()
default: return new Boot()
}
}
};
console.log(abc.create('balletFlat'));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment