使用typescript和babel-polyfill会导致编译器错误

时间:2016-01-25 08:15:31

标签: typescript babeljs

我正在使用babel-polyfill和打字稿。

当我使用函数string.includes()时出现错误

  

错误TS2339:类型'string'

上不存在属性'includes'

堆栈溢出中存在类似的问题:error TS2339: Property 'endsWith' does not exist on type 'string'

答案是扩展自定义接口String

interface String {    
    endsWith(searchString: string, endPosition?: number): boolean;
};

我不太喜欢这个想法,因为这意味着我必须以这种方式修复每个es6 polyfill功能。

有没有办法告诉打字稿他应该使用es6定义,但是转换为es5?

1 个答案:

答案 0 :(得分:3)

没有编译器选项可以启用此功能,但您可以直接引用lib.es6.d.ts文件:

///<reference path="../path/to/node_modules/typescript/lib/lib.es6.d.ts" />

或使用像es6-shim这样的填充程序库来获取类型,但不包括js文件,因为babel会为你编译它。

tsd install es6-shim