Buenos días
Tratando de lidiar con los genéricos
hay 2 tipos
TUserInfo type TUserInfo = { id: num, readonly fname: string, readonly lname: string }TBody type TBody = { success: boolean, user?: any } Dime cómo pasar cualquier tipo a TBody (por ejemplo, TUserInfo ). Y user debe tener el mismo tipo en lugar de any . Gracias de antemano
Creo que es mejor usar uniones discriminadas en este caso:
export interface User { id: number, fname: string, lname: string } type Response<T> = | { success: true; user: T } | { success: false } type Result = Response<User> declare var result: Result if (result.success) { result.user } else { result.success // false result.user // error } Estoy dispuesto a apostar que si tiene success , si la propiedad de user false debería estar ubdefined .
El tipo Result es una mónada bastante popular. Ver resultado de Rust, resultado de F#
En mecanografiado, puede crear interfaces.
export interface TUserInfo { id: number, fname: string, lname: string } export interface TBody { success: boolean, user?: TUserInfo }También lo hizo
type TBody<T> = { success: boolean; user?: T; }