我想備考逗號從物體隔開的字符串,如何在打字稿中使用Object.values?
const data = {"Ticket-1.pdf":"8e6e8255-a6e9-4626-9606-4cd255055f71.pdf","Ticket-2.pdf":"106c3613-d976-4331-ab0c-d581576e7ca1.pdf"};
const values = Object.values(data).map(x => x.substr(0, x.length - 4));
const commaJoinedValues = values.join(',');
console.log(commaJoinedValues);
如何使用打字稿做到這一點?
得到一個錯誤文件:使用Object.keys代替
severity: 'Error'
message: 'Property 'values' does not exist on type 'ObjectConstructor'.'
at: '216,27'
source: 'ts'
請注意,這是一個替代方案(很好!),而不是關於如何在TS中使用ES7的Object.values來解決OP的編譯錯誤的實際答案。要做到這一點,只需在'--lib'設置中使用'ES2017'。 – Aaron
@Aaron你的解決方案非常複雜,以至於任何新的打字稿都無法接受,爲了編譯你必須添加'ES2017'庫,並且必須包含使用它的polyfill庫。對不同人的不同答案是國王。 –
@ holi-jave這不是「我的解決方案」,它只是TS和非標準JS功能的工作方式,就像OP試圖使用ES7/Object.values()一樣。也許你認爲它的複雜性(我並不反對),但這只是嘗試今天使用'Object.values()'等未來特性的本質。它總是這樣。即使'Object.keys()'仍然應該是多邊填充的,如果你的目標是ES3或者想支持IE8(希望你現在不用了!)如果你是ESB,那麼通常理解ES特性,瀏覽器支持和polyfilling是個好主意。在網站開發中! – Aaron