Solución
solution.tsTypeScript
from typing import Protocol
# Define el Protocol Saveable con el metodo save() -> str
# Luego define FileItem y DatabaseItem que lo implementen
class Saveable(Protocol):
def save(self)-> str: ...
class FileItem:
def __init__(self, ftype: str, name: str)-> None:
self.ftype = ftype
self.name = name
def save(self)-> str:
return f"Saved file: {self.name}"
class DatabaseItem:
def __init__(self, dtype: str, name: str)-> None:
self.dtype = dtype
self.name = name
def save(self)-> str:
return f"Saved db: {self.name}"
def save_all(items_data: list[dict]) -> list[str]:
# Crea los objetos segun items_data["type"] y retorna la lista de resultados de save()
object_list = []
for item in items_data:
if item.get("type") == "file":
obj = FileItem(item.get("type"), item.get("name"))
elif item.get("type") == "db":
obj = DatabaseItem(item.get("type"), item.get("name"))
else:
print("ERROR")
object_list.append(obj.save())
return object_list0respuestas