TypexJS naming scheme applies to all primitive immutable types:

It extends to specific Object types:

The suffix specifying the type is an underscore character followed by a single letter:

Type Suffix
Null _N
Undefined _U
Boolean _b
Number _n
String _s
Array _a
Object _o
Symbol _y
Class _c
RegExp _r

To convey even more meaningful information, function identifiers follow a slightly different scheme:

Function return is Suffix
Null __N
Undefined __U
Boolean __b
Number __n
String __s
Array __a
Object __o
Symbol __y
Class __c
RegExp __r
Function __f
Void __v

const awesome__s = () => 'An awesome String'
const clone__s = awesome__s

In case of a function returning different types of value, we just omit the type character.

const silly__ = string_b => string_b ? 'A weird String' : 1234

We could do the same for a variable accepting different kinds of type, but is it really a good practice?

let hybrid_ = 'A String'
hybrid_ = 1234 //: What a mess!