wrec 0.36.3 → 0.36.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/scripts/lint.js +26 -1
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "wrec",
3
3
  "description": "a library that greatly simplifies building web components",
4
4
  "author": "R. Mark Volkmann",
5
- "version": "0.36.3",
5
+ "version": "0.36.4",
6
6
  "license": "MIT",
7
7
  "repository": {
8
8
  "type": "git",
package/scripts/lint.js CHANGED
@@ -1680,12 +1680,37 @@ function typeExpressionMatchesDeclaredType(
1680
1680
  typeExpression,
1681
1681
  declaredTypeNode
1682
1682
  ) {
1683
- const declaredType = checker.getTypeFromTypeNode(declaredTypeNode);
1684
1683
  const typeKind = typeExpressionKind(typeExpression);
1684
+ const declaredType = checker.getTypeFromTypeNode(declaredTypeNode);
1685
+
1686
+ if (typeKind === 'Boolean') {
1687
+ return checker.isTypeAssignableTo(checker.getBooleanType(), declaredType);
1688
+ }
1689
+
1690
+ if (typeKind === 'Number') {
1691
+ return checker.isTypeAssignableTo(checker.getNumberType(), declaredType);
1692
+ }
1693
+
1694
+ if (typeKind === 'String') {
1695
+ return checker.isTypeAssignableTo(checker.getStringType(), declaredType);
1696
+ }
1685
1697
 
1686
1698
  if (typeKind === 'Object') {
1687
1699
  return isNonArrayObjectLikeType(checker, declaredType);
1688
1700
  }
1701
+
1702
+ if (typeKind === 'Array') {
1703
+ const declaredTypes = declaredType.isUnion()
1704
+ ? declaredType.types
1705
+ : [declaredType];
1706
+ return declaredTypes.every(
1707
+ type =>
1708
+ Boolean(type.flags & (ts.TypeFlags.Any | ts.TypeFlags.Unknown)) ||
1709
+ checker.isArrayType(type) ||
1710
+ checker.isTupleType(type)
1711
+ );
1712
+ }
1713
+
1689
1714
  if (typeKind === 'HTMLElement') {
1690
1715
  const elementType = getConstructedType(checker, typeExpression);
1691
1716
  return elementType