Angulr2+ 引入第三方库 以及 Angular中Markdown-It 在ie11下的兼容问题

Angular 第三方库标准引入方式

以markdown-it为例

下载依赖包

npm install --save markdown-it @types/makdown-it
@types

TS作为JS的超集自然可以使用用JS编写的各种库, 但是直接使用JS库那么TS一大优势: 强类型语言带来的代码智能提示这个功能就无法使用了。所以就出现了@Types这个项目。
@types将非TS编写的第三方js库包装成TS可用的库, 就是在原JS库上加上了一些*.d.ts的声明文件, 声明了JS库中用到的类型.
这样一来TS就可以通过声明文件识别JS库, 以提供TS特有的各种功能了.
@types项目
@types项目搜索页 – 搜索提供了定义文件的JS库

IE11兼容问题(仅markdown-it)

在使用markdown-it的时候, 我按照上面的方式引入了markdown-it@types/markdown-it, 将项目启动后在Chrome下可以运行,
但是在IE11下, 控制台出现以下报错

SCRIPT1002: 语法错误
vendor.js (75078,27)

打开vendor.js, 具体信息如下

/**
 * Creates a string based on an array of numeric code points.
 * @see `punycode.ucs2.decode`
 * @memberOf punycode.ucs2
 * @name encode
 * @param {Array} codePoints The array of numeric code points.
 * @returns {String} The new Unicode string (UCS-2).
 */
const ucs2encode = array => String.fromCodePoint(...array);

应该是IE11不支持箭头函数, 加上babel-polyfill依然还是同样的错误.
markdown-it的Demo页在IE下是可以运行的, 问题不知道是Angular还是TS打包的问题, 导致漏过了上面的一行代码.

总之最后的解决方法是直接引入了markdown-it.min.js不通过TS.以下是引入方法.

Angular 无声明文件第三方库引入方式

还是以markdown-it为例
引入方式 (这种方式引入的JS库无法进行智能提示)

import * as MarkdownIt from 'node_modules/markdown-it/dist/markdown-it.min.js';

你可能感兴趣的:(JS,TS)