日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

java中函数的表达,如何表达“用T作为参数|的函数字符串,它是TypeScript中T“的键...

發布時間:2025/3/20 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java中函数的表达,如何表达“用T作为参数|的函数字符串,它是TypeScript中T“的键... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我有以下TypeScript,它可以工作:

interface Columns {

[s: string]: string | ((item: any) => string);

}

const exportAsCsv = function (data: any[], columns: Columns): void {

const header = Object.keys(columns)

.map(x => `"${x}"`)

.join(";");

const rows = [];

for (const item of data) {

const row = Object

.values(columns)

.map(field => typeof field === 'function' ? field(item) : item[field])

.map(x => (x || '').replace(/"/, '""'))

.map(x => `"${x}"`)

.join(";");

rows.push(row);

}

console.log([header, ...rows].join("\r\n"));

}

我們的想法是傳入一個對象數組,一個列對象,其中鍵是 Headers (可以是任何字符串),值應該是屬性的名稱或返回值的函數 .

const users = [{id: 1, name: 'Alice', isCool: true}, ...];

const columns = {

'Id': 'id,

'Name': 'name',

'Is cool': u => u.isCool ? 'Yes' : 'No',

};

exportToCsv(users, columns);

這一切都有效,但我想知道如何一般地編寫 Columns 類型 . 繼續獲取不可分配的東西,輸入聲明但未使用的參數等,等等 .

interface Columns {

[s: string]: ?;

}

const exportAsCsv = function (data: T[], columns: Columns): void

我該如何正確表達?

總結

以上是生活随笔為你收集整理的java中函数的表达,如何表达“用T作为参数|的函数字符串,它是TypeScript中T“的键...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。