문제: Role과 Permissions 타입이 주어졌을 때,
각 Role에 대한 Permissions을 매핑하는 새로운 타입을 만드세요.
type Role = "admin" | "user" | "guest";
type Permissions = "read" | "write" | "delete";
// 여기에 새로운 타입을 만드세요.
type Role = "admin" | "user" | "guest";
type Permissions = "read" | "write" | "delete";
type RolePermission = [Role in keyof Permissions]: Role[Permissions];
type Role = "admin"| "user"| "guest";
type Permissions = "read"|"write"|"delete";
type RolePermissions = [keyof Permissions]: Role[Permissions];
type Role = "admin"| "user"| "guest";
type Permissions = "read"|"write"|"delete";
type RolePermissions = {[P in Role]: Permissions[]};
const rolePermissions: RolePermissions = {
admin: ["read", "write", "delete"],
user: ["read", "write"],
guest: ["read"],
}
//{
admin: [ 'read', 'write', 'delete' ],
user: [ 'read', 'write' ],
guest: [ 'read' ]
}
type Role = ["admin", "user", "guest"];
type Permissions = ["read", "write","delete"];
type RolePermissions = [keyof Permissions]: Role[Permissions];
Permission의 키를 가지는 타입이고 이것의 타입은 Role의 각 키 값에 Permission의 키 값들을 매핑한다...? 라는 것을 의도하고 싶었다.
type Role = ["admin" | "user" | "guest"];
type Permissions = ["read" | "write" | "delete"];
type RolePermissions = {
[P in Role[number]]: Permissions[number];
};
const rolePermissions: RolePermissions = {
admin: "delete",
user: "write",
guest: "read",
};
console.log(rolePermissions)
// { admin: 'delete', user: 'write', guest: 'read' }
type Role = "admin" | "user" | "guest";
type Permissions = "read" | "write" | "delete";
// 여기에 새로운 타입을 만드세요.
type RolePermissionsMap = Record<Role, Permissions[]>;
const rolePermissions: RolePermissionsMap = {
admin: ["read", "write", "delete"],
user: ["read", "write"],
guest: ["read"],
};