microsoft / TypeScript

TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
https://www.typescriptlang.org
Apache License 2.0
101.08k stars 12.49k forks source link

Unable to destructure TypedArrays #20623

Open miklossuveges opened 6 years ago

miklossuveges commented 6 years ago

TypeScript Version: 2.6.2

Code

const [ foo, bar ] = new Float64Array([42, -42])

Expected behavior: foo and bar are destructured correctly All JS engine with support for TypedArrays and destructuring handles this code without any problem

Actual behavior: Error:error TS2461: Type 'Float64Array' is not an array type.

RyanCavanaugh commented 6 years ago

We could support this for non-rest destructuring; but the current ... emit uses slice which is not present on TypedArrays. @rbuckton thoughts?

rbuckton commented 6 years ago

Array.prototype.slice.call works on typed arrays, so we could change the helper.

RyanCavanaugh commented 6 years ago

@rbuckton I was wrong; slice is present on the typed arrays. Does anything stop us from just removing the type error and running with the current emit?