问题标签 [es6-shim]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4799 浏览

babeljs - babel 需要 es6-shim 吗?

es6-shim我在 Twitter 上提到我要从babel. 还有人提到:

即使使用 babel,仍然需要垫片。他们修复了损坏的内置程序,那些 babel 的输出使用。

所以:

  1. babel 是否需要 es6-shim 或类似的?

  2. 如果是这样,为什么不将require这些东西作为依赖项呢?

带有参考文献的答案优于没有支持论据的“是/否”!

0 投票
0 回答
2149 浏览

typescript - 在 Angular2/TypeScript 项目中使用 es6-shim

我想将 es6 的 Map 用于 Angular2/typescript 项目。我想实现这一点的方法是通过 es6-shim 库。但是我真的很困惑我应该如何做到这一点。这是我到目前为止所做的:

在我的根 index.html 文件中,我有这个:

以上工作正常,因为如果我现在运行我的应用程序,它将毫无问题地加载。

然后,在我的一个打字稿文件中,我有这个:

如果我这样做,当我尝试运行我的应用程序时会出现错误:

因为我在 index.html 中包含了 es6-shim,这不是很奇怪吗?

现在,如果我只是手动复制上述目录中的 es6-shim.js 文件,它就可以工作,我不会收到任何错误。

然后,我尝试像这样创建一个 Map 对象:

但我收到以下错误:

所以,既然我得到了这些奇怪的错误,我就认为我做错了什么。有人能帮助我吗?

谢谢!

0 投票
3 回答
9927 浏览

typescript - TypeScript + ES6 Map + 对象类型的索引签名隐式具有“任何”类型

我在 TypeScript 中有以下代码:

编译器给了我这个错误:

Error:(10, 16) TS7017: Index signature of object type implicitly has an 'any' type.

通过 es6-shim,地图是“可能的”。我不太确定这里发生了什么。其实这张地图让我有点困惑。Map 应该来自应该实现 es6 功能的 es6-shim。但是 es6 没有静态类型,对吧?那么,为什么 Map 期望键/值类型作为通用参数呢?我看到有些人添加了“noImplicitAny”标志,但我想解决这个问题,而不是忽略它。

谢谢你。

0 投票
1 回答
623 浏览

javascript - 如何在 es6 中使用嵌入式表达式 ${...}

如何使用嵌入式表达式,例如 ${...}工作。当我在 javascript 中工作时,它完美无缺。但不是在 HTML 中。所以我的问题是 ES6 在运行时检查所有字符串(文字或对象)和字符串插值。

前任:

但在 HTML

0 投票
2 回答
17927 浏览

angular - Angular2 为什么我们需要 es6-shim

按照Angular2 快速入门指南,我们被指示es6-shim在 2 个地方包括:

1)index.html

<script src="node_modules/es6-shim/es6-shim.min.js"></script>

2)typings.json

我的印象是我们正在将es6代码编译为es5.

配置在tsconfig.json

如果最终结果是浏览器正在加载es5,为什么浏览器需要 shimses6呢?

0 投票
1 回答
13718 浏览

javascript - HTML5、ES6 模板字符串 polyfill

对于我们的应用程序,我们需要使用新功能template string

但旧浏览器(如 android 默认浏览器)不支持模板字符串。

如何获得此功能的 polyfill?试过了babel。我们让这个 polyfill 适用于所有功能,但template string. 目前modernizr用于检测支持并显示使用其他浏览器的警报。这种方法对用户来说很烦人。我怎样才能获得一些 polyfill 以使其在不支持的浏览器上工作?

是什么让我们如此template strings。问题是我不能使用这些工具(trceurbabel),因为这个文件是从puppet. 我们不可能在那里运行这些转译器。想在浏览器端添加一些 polyfill。密钥中包含一些\n字符,需要保留这些字符。我想要一些 polyfill,所以我可以在 configs js 文件之前包含。

0 投票
1 回答
2673 浏览

ionic2 - Uncaught (in promise) TypeError: object is not a constructor(...) in ionic2

在使用 ionic2 运行基本应用程序时,它也会给出如下错误:Uncaught (in promise) TypeError: object is not a constructor(...) in ionic2。


创建新应用: ionic start appname tutorial --v2

运行应用程序:离子服务

我的系统规格:

Ubuntu:14.04(64位)

Chrome:版本 49.0.2623.87(64 位)

节点:v5.6.0

npm:v3.6.0

在此处输入图像描述

0 投票
2 回答
127 浏览

firefox - TypeScript/Angular2:tagDef.requireExtraParent 不是函数

研究错误,

“例外:TypeError:tagDef.requireExtraParent 不是函数”

它实际上在 Google 上返回 0 个结果。

背景:

  • 网站在 Chrome 和 Safari 上运行良好。还没测试过IE。那里是整个单独的噩梦。
  • 错误仅适用于 Firefox(似乎所有版本。目前在 45 上)
  • 我正在使用 System 从 TypeScript 转换为 ES5,并遵循 Angular 快速入门
  • 在 Mac 上,如果这很重要
  • Angular2,测试版 9

该网站非常基本。我已经消除了所有可能的并发症,而且似乎错误只是在引导本身。也许缺少 polyfill?

索引.html

main.ts(入口点)

应用程序.ts

我试过什么

添加一些额外的 polyfill,例如 html_parser,它似乎是定义 requireExtraParent 方法的地方。

消除任何编译/转译错误。

挖掘得如此之深,以至于谷歌甚至找不到任何东西。

0 投票
1 回答
6501 浏览

performance - Angular 2 性能 IE11 *ngFor

我正在尝试 Angular 2,我注意到 Internet Explorer 11 上的性能在使用 *ngFor 超过 1500 个项目时非常缓慢。使用 IE11 大约需要 25 秒,而在其他浏览器上则不到 1 秒。

暂停调试器我注意到代码不断调用es6-shim.js 中的isNan函数。这里是调用堆栈:

在此处输入图像描述

在这里工作的 plnkr:http://plnkr.co/edit/sEujClHmuCbrydIiYQYL?p= preview。代码非常简单:

有同样问题的人吗?任何提高性能的解决方法或提示?

先感谢您。

0 投票
1 回答
564 浏览

typescript - 当目标是 ES5 时,TypeScript 无法识别解构

我将 TypeScript 与"target": "es5". 我也在使用es6-shim,我已经安装了es6-shim/index.d.ts文件。没关系。我的问题是为什么当我尝试执行以下操作时会出现错误:

错误如下所示:

打字稿地图错误

但是,如果我“转换”数组以明确声明它包含字符串/数字对的元组,那么它可以工作:

另一方面,如果我将编译器设置更改为"target": "es6",则错误再次消失并且不需要强制转换。

所以我的问题是,为什么编译器在 es5 模式下无法确定数组包含字符串/数字元组?有没有办法“修复”它以便不需要演员?

编辑

这是我的tsconfig.json文件: