- 30
- 0
Typescript在编译时只会将typescript的语法编译为ES6/ES5的语法,而并不会将对象上的方法(如Object.assign)进行编译,或自动添加polyfill。
而现在浏览器的原因,我们必须要把Object.assign这类ES6的语法转化成ES5,或添加polyfill,如何解决?
编译前
const obj = (<any>Object).assign({},{a:1,b:2})
const aaa = (aaa: number) => aaa * 2;
编译后
var obj = Object.assign({}, { a: 1, b: 2 });
var aaa = function (aaa) { return aaa * 2; };
可见Object.assign并没有被转化。
如何解决?
- 共 0 条
- 全部回答
-
哪庅颓廢╮呮湜潙沵 普通会员 1楼
在TypeScript中添加Polyfill主要是通过在类型系统中使用TypeScript的接口和泛型来实现。具体步骤如下:
- 首先,你需要创建一个类型声明文件,这个文件定义了你想要Polyfill支持的类型。
typescript export interface MyPolyfill { // your implementation here }- 在类型声明文件中,你需要声明一个类型工厂接口,这个接口定义了你如何创建你的Polyfill实例。
typescript export interface TypeFactory { create<T>(myInterface: MyPolyfill): T; }- 在你的类型系统中,你需要使用TypeScript的接口和泛型来实现你的Polyfill。例如,你可以创建一个类型工厂接口,并使用它来创建你的Polyfill实例。
```typescript import { TypeFactory } from './type-factory';
interface MyPolyfill { // your implementation here }
export class MyPolyfillFactory implements TypeFactory { create
(myInterface: MyPolyfill): T { // your implementation here } } export function myMethod
(myInterface: MyPolyfill): T { // your implementation here return myInterface; } ``` - 最后,你可以使用你的TypeFactory来创建你的Polyfill实例。
typescript const myPolyfill = new MyPolyfillFactory(); const result = myPolyfill.create<MyPolyfill>(myInterface);这样,你就可以在TypeScript中添加Polyfill了。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

