Closed wlinna closed 6 years ago
This is your issue in a nutshell: TypeScript does not transpile ES6 string literals in a standard way.
Literally nothing I can do with this, and lit-html has the same exact issue.
Please talk to TypeScript chaps or ask CodePen if they are embedding an updated version of TypeScript.
var invokes = [];
function test(template) {
invokes.push(template);
}
function update(value) {
test`some ${value}!`;
}
update(1);
update(2);
document.body.textContent = invokes[0] === invokes[1];
That should be true but it's false in TypeScript.
FYI I've fixed with yet another workaround TypeScript shenanigans hoping they will stop breaking standards behavior.
As soon as unpkg/hyperhtml returns version 2.13.1
your code pen should work just fine even in TypeScript.
Thank you very much. You were quicker than I anticipated, and you even came up with a workaround. The pen works correctly now.
I'm going to bring this up at TypeScript's issue tracker in the near future.
In short, hyperHTM doesn't work with TypeScript, because when code is compiled with TypeScript to ES5, unmodified content is rerendered. With Babel that doesn't happen.
I created a pen to demonstrate this issue:
https://codepen.io/anon/pen/oPoWXX?editors=0011
To see the issue, select TypeScript as a preprocessor (if it isn't already), start the video, and then press the button. The problem doesn't occur when using Babel as a preprocessor.
While I know this is a TypeScript problem (and you won't like seeing this issue here), I reported it here for two reasons:
I know that you attempted to workaround the issue, but I don't know if it is present in hyperHTML v2, or if it ever covered this issue (completely).
It might be worth mentioning in the documentation, that using TypeScript with ES5 output is problematic, even if the problem is on the TypeScript side.
*I read https://github.com/Microsoft/TypeScript/issues/17956, https://github.com/WebReflection/hyperHTML/pull/101, https://github.com/Microsoft/TypeScript/pull/18300 and some of your blog-posts