TypeScript: augmenting built-in types

前端 未结 1 1481
小鲜肉
小鲜肉 2020-12-01 18:43

how does one augment one of the \'built-in\' types? eg Array?

In JS, I\'d do something like

Array.prototype.shuffle = function () { ... };

相关标签:
1条回答
  • 2020-12-01 18:58

    Types are 'open ended' in TypeScript, so you can just write:

    interface Array {
      shuffle: () => any; // <-- Whatever signature you want.
    }
    

    And then the type is expanded to include the new function (and you can assign a function matching the signature to it).

    Note however that extending the built-in types (those in lib.d.ts - such as Array) has an issue currently in the language service, as it caches those internally for perf reasons. Do the workaround I wrote-up at http://typescript.codeplex.com/workitem/4 to extend the built-in types without errors in the language service in VS.

    0 讨论(0)
提交回复
热议问题