A 128-bit value stored as two unsigned 64-bit integers. It serves as a UUID with which JavaScript objects can be “tagged” in order to ensure that they are of a certain type. This is a stronger check than [napi_instanceof][], because the latter can report a false positive if the object’s prototype has been manipulated. Type-tagging is most useful in conjunction with [napi_wrap][] because it ensures that the pointer retrieved from a wrapped object can be safely cast to the native type corresponding to the type tag that had been previously applied to the JavaScript object.

    1. typedef struct {
    2. uint64_t lower;
    3. uint64_t upper;
    4. } napi_type_tag;