Skip to content

Commit 95245af

Browse files
Documented isToStringTag
1 parent 50f1851 commit 95245af

1 file changed

Lines changed: 39 additions & 0 deletions

File tree

README.md

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,3 +236,42 @@ console.assert(hasToStringTag('Alpha', new Beta()));
236236
console.assert(hasToStringTag('Beta', new Beta()));
237237
console.assert(!hasToStringTag('Beta', new Alpha()));
238238
```
239+
240+
## `isToStringTag`
241+
242+
Check if object is instance of a class based on `Symbol.toStringTag`.
243+
244+
```ts
245+
import { isToStringTag, toStringTag } from '@hqtsm/class';
246+
247+
class Alpha {
248+
public a = 1;
249+
static {
250+
toStringTag(this, 'Alpha');
251+
}
252+
}
253+
254+
class Beta extends Alpha {
255+
public b = 2;
256+
static {
257+
toStringTag(this, 'Beta');
258+
}
259+
}
260+
261+
const alpha = new Alpha();
262+
const beta = new Beta();
263+
264+
console.assert(isToStringTag(Alpha, alpha));
265+
console.assert(isToStringTag(Alpha, beta));
266+
console.assert(isToStringTag(Beta, beta));
267+
console.assert(!isToStringTag(Beta, alpha));
268+
269+
if (isToStringTag(Alpha, alpha)) {
270+
console.assert(alpha.a === 1);
271+
}
272+
273+
if (isToStringTag(Beta, beta)) {
274+
console.assert(beta.a === 1);
275+
console.assert(beta.b === 2);
276+
}
277+
```

0 commit comments

Comments
 (0)