kintone/js-sdk

Type definitions of field values in dts-gen is not accurate

safu9 opened this issue · 2 comments

safu9 commented

Versions

  • @kintone/dts-gen: 6.1.3
  • TypeScript: 4.7.4

Current Behavior

Types of some field values are defined as string, but can be undefined according to the document.
Also we are allowed to assign null to the fields.

Fields that can be undefined and null

  • Text (kintone.fieldTypes.SingleLineText)
  • Text Area (kintone.fieldTypes.MultiLineText)
  • Number (kintone.fieldTypes.Number)
  • Drop-down (kintone.fieldTypes.DropDown)
  • Date (kintone.fieldTypes.Date)
  • Time (kintone.fieldTypes.Time)
  • Date and time (kintone.fieldTypes.DateTime)
  • Link (kintone.fieldTypes.Link)

Fields that can be null

  • Rich Text (kintone.fieldTypes.RichText)

Expected Behavior

Types of these field values shoud be defined as string | undefined | null or string | null, not string.

Steps to reproduce the issue

When strict option in tsconfig is true, this code should not have any error, but do.

const field : kintone.fieldTypes.SingleLineText = { value: null };

This code should have a error at value.trim(), but don't.

const trimedValue = field.value.trim();
safu9 commented

If needed, I will cretae a PR for this issue.

@safu9
Thank you for your reporting. Replacing a type string to string | null can occur a breaking change, as SDK users must introduce a null-check before getting a value. Our team will consider the directionality of implementation.

Thank you.