Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript TypeScript中的变量声明出错_Javascript_Typescript - Fatal编程技术网

Javascript TypeScript中的变量声明出错

Javascript TypeScript中的变量声明出错,javascript,typescript,Javascript,Typescript,我知道,TypeScript用等价的代码生成JavaScript文件 但是,这里有一个问题,TypeScript不能生成等价的JavaScript代码 演示文稿 demo.js 如上所述,我在demo.ts文件中声明了一个区域设置变量myName。但是,看看JavaScript代码,它将myName变量声明为全局变量 概要:在我的例子中,TypeScript生成的JavaScript代码的变量始终在全局范围内 所以,代码末尾的意思改变了。为什么?我认为您正在使用类似webpack的东西,使用ba

我知道,TypeScript用等价的代码生成JavaScript文件

但是,这里有一个问题,TypeScript不能生成等价的JavaScript代码

演示文稿

demo.js

如上所述,我在demo.ts文件中声明了一个区域设置变量myName。但是,看看JavaScript代码,它将myName变量声明为全局变量

概要:在我的例子中,TypeScript生成的JavaScript代码的变量始终在全局范围内


所以,代码末尾的意思改变了。为什么?

我认为您正在使用类似webpack的东西,使用babel来传输代码

你需要告诉巴贝尔你的目标浏览器

例如,如果您的目标是最后一个读取let和const的chrome,则编译后的代码不会更改

更新: 在评论中解决 使用-目标选项
ex:tsc-target ES2016 file.ts

您是否希望您的代码导致引用错误?如果您将TS代码作为JS运行,这也是一个有效的JS代码,那么您将得到一个引用错误,因为let导致myName的作用域为If,因此console.log将无法使用它。您共享的JS不会有这个问题,因为myName将被提升到foo的作用域而不是全局作用域。@TheJim01…是的,我希望它会给出引用错误。因为,我在TS代码中声明了locale变量,但它在JS代码中充当全局变量。所以,很明显,浏览器将其视为一个全局变量。这是我不想要的。嘿,桑德罗,我向你投降。我不知道什么是巴贝尔或如何告诉我的目标浏览器巴贝尔!你能告诉我更多关于这个的信息吗?你能告诉我你使用了什么起始代码吗?因为有几种设置方法,如果您的项目是新的,我认为您可以在package.json browserslist:['last 1 Chrome versions']中配置浏览器目标。我只创建了demo.ts文件,其中包含升华文本3。package.json文件在哪里?您也可以在这里看到babel Transfile代码,您能再给我一次机会吗尝试此tsc-target ES2016 demo.ts
function foo()
{
    if(1)
    {
        let myName = "Raktim";
    }
    console.log(myName);
}
foo();
function foo() {
    if (1) {
        var myName = "Raktim";
    }
    console.log(myName);
}
foo();