Следующее требует, чтобы Вы перечислили ключи самостоятельно, но по крайней мере TypeScript осуществит IUserProfile
, и IUserProfileKeys
имеют те же самые ключи ( Required<T>
, был добавлен в TypeScript 2.8):
export interface IUserProfile {
id: string;
name: string;
};
type KeysEnum<T> = { [P in keyof Required<T>]: true };
const IUserProfileKeys: KeysEnum<IUserProfile> = {
id: true,
name: true,
};
Это должно работать
var IMyTable: Array<keyof IMyTable> = ["id", "title", "createdAt", "isDeleted"];
или
var IMyTable: (keyof IMyTable)[] = ["id", "title", "createdAt", "isDeleted"];
// declarations.d.ts
export interface IMyTable {
id: number;
title: string;
createdAt: Date;
isDeleted: boolean
}
declare var Tes: IMyTable;
// call in annother page
console.log(Tes.id);