in src/langs/common/items.js [157:172]
constructor(type, value, key = '', needCast = false, expected = '', isOptional = false) {
super();
if (key instanceof TypeItem) {
this.dataType = key;
} else {
this.key = key;
this.dataType = null; // TypeItem
}
this.type = type; // map | array | string | number | call | null | behavior | param | expr | merge | var | class
this.value = value;
this.needCast = needCast;
this.expected = expected;
this.isOptional = isOptional;
this.isExpand = false;
this.needToReadable = false;
}