Skip to content

Instantly share code, notes, and snippets.

@theScottyJam
Created October 25, 2021 13:59
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Embed
What would you like to do?
Article: Composition Alone Can't Replace Inheritance - runtime hierarchy check
const monsterSentinel = {}
export const isMonster = obj => obj.typeSentinel === monsterSentinel
export class Slime {
typeSentinel = monsterSentinel
...
}
export class Skeleton {
typeSentinel = monsterSentinel
...
}
isMonster(new Slime()) // true
isMonster(new Skeleton()) // true
isMonster({ x: 2 }) // false
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment