Digamos que tengo algo como esto:
export type Style = Pick< React.CSSProperties, "margin" | "marginBottom" >y luego puedo usar en un componente como
type Props = { style: Style }pero en lugar de tener que definir eso en CADA componente, prefiero hacer
type Props = { someRandomProp } & Styley de esa manera no necesito agregar el accesorio como un tipo en todas partes
¿Cómo hago esto?
Puedes hacerlo casi como lo has mostrado:
export type Style = Pick< React.CSSProperties, "margin" | "marginBottom" >; export type StyleProp = { style: Style };después
import { StyleProp } from "./somewhere"; // ... type Props = { someRandomProp: string; // or whatever } & StyleProp;Consulte la documentación oficial: Typescript Docs
type Animal = { name: string } type Bear = Animal & { honey: boolean }También puede usar interfaces en lugar de tipos para cada componente y hacer que se extiendan desde el tipo predefinido original como este:
type Animal = { name: string } interface Bear extends Animal { honey: boolean }Tenga en cuenta que la extensión no funciona entre tipos o de una interfaz a un tipo. Solo las interfaces y las clases pueden extenderse desde otra entidad.