From 98c89624f9b0f567467f92f264b18b26ad07353c Mon Sep 17 00:00:00 2001 From: Ayo Date: Fri, 8 Dec 2023 22:34:25 +0100 Subject: [PATCH] feat: throw TypeError when setting different type --- package.json | 2 +- src/WebComponent.js | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index d6836a6..49518fa 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "web-component-base", - "version": "2.0.0-beta.8", + "version": "2.0.0-beta.9", "description": "A zero-dependency, ~600 Bytes (minified & gzipped), JS base class for creating reactive custom elements easily", "type": "module", "exports": { diff --git a/src/WebComponent.js b/src/WebComponent.js index a6cfee8..650820e 100644 --- a/src/WebComponent.js +++ b/src/WebComponent.js @@ -134,6 +134,8 @@ export class WebComponent extends HTMLElement { effectsMap[prop] = []; } effectsMap[prop].push(value.callback); + } else if (typeof oldValue !== typeof value) { + throw new TypeError(`[${meta.constructor.name}.props.${prop}] ${typeof value} is not assignable to ${typeof oldValue}`) } else if (oldValue !== value) { obj[prop] = value; effectsMap[prop]?.forEach((f) => f(value));