4.0.0 (2023-03-15)
Features
- allow square bracket property access (cc01ccf)
- parse index signatures and mapped types (dd49463)
- remove unneeded variadic property from
ObjectFieldResult
(20bf77d) - split KeyValueResult in different types for objects and other uses (6b388d3)
BREAKING CHANGES
ObjectResult
no longer containsKeyValueResult
, but uses the new typesObjectFieldResult
andJsdocObjectFieldResult
.
For mode typescript
this basically means a simple rename of type JsdocTypeKeyValue
to JsdocTypeObjectField
:
input: { key: string }
before:
{
"type": "JsdocTypeObject",
"meta": {
"separator": "comma"
},
"elements": [
{
"type": "JsdocTypeKeyValue",
"key": "key",
"right": {
"type": "JsdocTypeName",
"value": "string"
},
"optional": false,
"readonly": false,
"variadic": false,
"meta": {
"hasLeftSideExpression": false
}
}
]
}
after:
{
"type": "JsdocTypeObject",
"meta": {
"separator": "comma"
},
"elements": [
{
"type": "JsdocTypeObjectField",
"key": "key",
"right": {
"type": "JsdocTypeName",
"value": "string"
},
"optional": false,
"readonly": false,
"variadic": false,
"meta": {
"quote": undefined
}
}
]
}
for jsdoc
mode the JsdocTypeKeyValue
can now be either JsdocTypeObjectField
or JsdocTypeJsdocObjectField
:
input: { Array<string>: string }
before:
{
"type": "JsdocTypeObject",
"meta": {
"separator": "comma"
},
"elements": [
{
"type": "JsdocTypeKeyValue",
"left": {
"type": "JsdocTypeGeneric",
"left": {
"type": "JsdocTypeName",
"value": "Array"
},
"elements": [
{
"type": "JsdocTypeName",
"value": "string"
}
],
"meta": {
"brackets": "angle",
"dot": false
}
},
"right": {
"type": "JsdocTypeName",
"value": "string"
},
"meta": {
"hasLeftSideExpression": true
}
}
]
}
after:
{
"type": "JsdocTypeObject",
"meta": {
"separator": "comma"
},
"elements": [
{
"type": "JsdocTypeJsdocObjectField",
"left": {
"type": "JsdocTypeGeneric",
"left": {
"type": "JsdocTypeName",
"value": "Array"
},
"elements": [
{
"type": "JsdocTypeName",
"value": "string"
}
],
"meta": {
"brackets": "angle",
"dot": false
}
},
"right": {
"type": "JsdocTypeName",
"value": "string"
}
}
]
}