2016-08-15 15 views
7

Tôi đang sử dụng kiểu chữ @ next (phiên bản 2.1.0-dev.20160812 để cụ thể).Không thể lấy Array.prototype.includes để làm việc trong Typescript 2.0

Tôi gặp lỗi khi cố sử dụng Arrays.prototype.includes.

Ví dụ mã này

let myItems: Array<string>; 
let exists: boolean = myItems.includes('blah'); 

Tạo các lỗi sau:

Property 'includes' does not exist on type 'string[]'.at line 124 col 26 

Đây là tsconfig.json tôi:

{ 
    "compileOnSave": true, 
    "compilerOptions": { 
    "module": "es6", 
    "target": "es6", 
    "moduleResolution": "node", 
    "allowSyntheticDefaultImports": true, 
    "noImplicitAny": true, 
    "sourceMap": true, 
    "outDir": "ts-build", 
    "jsx": "preserve" 
    }, 
    "exclude": [ 
    "node_modules" 
    ] 
} 
+1

Theo https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes, bao gồm đã được thêm vào ES2016 (AKA ES7) và bạn đang nhắm mục tiêu ES6, vì vậy bạn không nên sử dụng phương thức đó (hoặc bạn cần một polyfill). Bạn chỉ có thể sử dụng 'myItems.indexOf ('blah')> = 0' –

+0

@JBNizet có nghĩa là tôi nên nhắm mục tiêu ES7 không? Tôi đang sử dụng babel để chuyển thành es5 – methodex

+0

@JBNizet có vẻ như bạn không thể nhắm mục tiêu es7. Có các kiểu cho Array.prototype.includes trong TS @ Next. Tôi không chắc tại sao điều này sẽ không hoạt động. – methodex

Trả lời

9

tôi cố định này bằng cách thêm lib: [" es2016 "," dom "] đến tùy chọn trình biên dịch trong tsconfig.json

Các vấn đề liên quan