gpt4 book ai didi

javascript - typescript 错误: Function declarations are not permitted in blocks in strict mode

转载 作者:行者123 更新时间:2023-12-02 21:41:44 25 4
gpt4 key购买 nike

我尝试运行脚本,但出现此错误:在以“ES3”或“ES5”版本为目标期间,严格模式下的 block 中不允许使用函数声明。模块自动处于严格模式。

我使用 typescript ,这是脚本:

export default () => {

if(document.getElementById("myRange")){
//slider
var slider = document.getElementById("myRange") as HTMLInputElement;
var output = document.getElementById("demo");
var gainTimeOutput = document.getElementById("time");
var sliderEco = document.getElementById("myRange-eco") as HTMLInputElement;
var outputEco = document.getElementById('demo-eco');
var eco = document.getElementById('eco');
outputEco.innerHTML = sliderEco.value;
output.innerHTML = slider.value;

function movingSlider(){ <-- Error happens here
output.innerHTML = slider.value;
var convertSlider = parseInt(slider.value);
var convertSliderEco = parseInt(sliderEco.value);

var gainTime = Math.round(convertSlider).toString();
var gainMoney = (Math.round(convertSlider* 2).toString();

gainTimeOutput.innerHTML = gainTime + "h";
outputEco.innerHTML = sliderEco.value;
eco.innerHTML = gainMoney + "€";
}

slider.oninput = e => {
movingSlider()
};

我不明白为什么,问题是当我删除我的 if(document.getElementById("myRange")) 时,效果很好,有人知道为什么我会出现此错误以及我应该如何解决它?

最佳答案

这几乎就是错误所说的内容。您在 block 中有一个函数声明,其行为为 weird在 ES6 中指定之前跨环境且不可预测,因此您的设置不允许这样做。相反,将函数表达式分配给变量名。改变

function movingSlider(){

const movingSlider = function movingSlider(){

如果您发布了导出函数的完整代码,那么代码可能会更清晰并且如果您只是返回,则不需要上述内容如果 myRange 不存在,则提前:

export default () => {
const slider = document.getElementById<HTMLInputElement>("myRange");
if (!slider) {
return;
}
// rest of your code

这可以让您避免在函数的其余部分中出现不必要的缩进空间。

关于javascript - typescript 错误: Function declarations are not permitted in blocks in strict mode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60349932/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com