給定此型別別名:
export type RequestObject = {
user_id: number,
address: string,
user_type: number,
points: number,
};
我想要一個包含所有屬性的陣列,例如:
['user_id','address','user_type','points']
有沒有辦法得到這個?我已經用谷歌搜索了,但我只能使用以下包獲取介面
https://github.com/kimamula/ts-transformer-keys
uj5u.com熱心網友回復:
你不能輕易做到這一點,因為型別擦除
Typescript 型別僅在編譯時存在。它們在編譯的 javascript 中不存在。因此,您不能使用編譯時資料(例如RequestObject型別別名)填充陣列(運行時物體),除非您執行一些復雜的操作,例如您找到的庫。
解決方法
- 自己撰寫與您找到的庫類似的代碼。
- 找到一個使用型別別名的不同庫,例如
RequestObject. - 創建一個與您的型別別名等效的介面并將其傳遞給您找到的庫,例如:
import { keys } from 'ts-transformer-keys';
export type RequestObject = {
user_id: number,
address: string,
user_type: number,
points: number,
}
interface IRequestObject extends RequestObject {}
const keysOfProps = keys<IRequestObject>();
console.log(keysOfProps); // ['user_id', 'address', 'user_type', 'points']
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/405748.html
標籤:
