Как я могу экспортировать интерфейс машинописи, который в пространстве имен использовать в другом модуле? - PullRequest
0 голосов
/ 31 мая 2019

У меня есть такой интерфейс; x.ts

 namespace Basex {
    export interface AddressDto  {
        AddressDetail?: string;
        AddressName?: string;
        AddressType?: number;
        City?: string;
        CityCode?: number;
        CountryCode?: number;
        DexjustizCode?: string;
        District?: string;
        HouseNumber?: number;
        HouseNumberDetail?: string;
        Id?: number;
        IsMainAddress?: boolean;
        LastAddressInterval?: string;
        Street?: string;
        Text?: string;
        Town?: string;
        ValidationLevel?: number;
        ValidityEndDate?: Date;
        ValidityStartDate?: Date;
     }  
}

I use this object in my screen in this way;

const {Basex}  = require('../../src/model/dto/x');

Я могу получить доступ AddressDto вот так Basex.AddressDto

Но я не смог получить доступ к этому пространству имен из другого проекта зависимостей. Я попытался использовать вышеупомянутый метод для экспорта в index.ts проекта зависимости. Но это не может быть. Кратко Как получить доступ к интерфейсам этого пространства имен из другой зависимости?

Ответы [ 2 ]

1 голос
/ 31 мая 2019

Вы должны экспортировать интерфейс.пожалуйста, обратитесь здесь

0 голосов
/ 31 мая 2019

Вы также можете импортировать свой интерфейсный модуль в нужное место, и оттуда вы можете передать его как опору, и я думаю, что это будет удобный способ

Ex: button.props.ts

import { ViewStyle, TextStyle, TouchableOpacityProps } from "react-native"
import { ButtonPresetNames } from "./button.presets"

export interface ButtonProps extends TouchableOpacityProps {
  /**
   * Text which is looked up via i18n.
   */
  tx?: string

  /**
   * The text to display if not using `tx` or nested components.
   */
  text?: string

  /**
   * An optional style override useful for padding & margin.
   */
  style?: ViewStyle | ViewStyle[]

  /**
   * An optional style override useful for the button text.
   */
  textStyle?: TextStyle | TextStyle[]

  /**
   * One of the different types of text presets.
   */
  preset?: ButtonPresetNames

  /**
   * One of the different types of text presets.
   */
  children?: React.ReactNode
}

внутри button.tsx передать его в качестве реквизита

import * as React from "react"
import { TouchableOpacity } from "react-native"
import { Text } from "../text"
import { viewPresets, textPresets } from "./button.presets"
import { ButtonProps } from "./button.props"
import { mergeAll, flatten } from "ramda"

/**
 * For your text displaying needs.
 *
 * This component is a HOC over the built-in React Native one.
 */
export function Button(props: ButtonProps) {
  // grab the props
  const { preset = "primary", tx, text, style: styleOverride, textStyle: textStyleOverride, children, ...rest } = props

  const viewStyle = mergeAll(flatten([viewPresets[preset] || viewPresets.primary, styleOverride]))
  const textStyle = mergeAll(flatten([textPresets[preset] || textPresets.primary, textStyleOverride]))

  const content = children || <Text tx={tx} text={text} style={textStyle} />

  return (
    <TouchableOpacity style={viewStyle} {...rest}>
      {content}
    </TouchableOpacity>
  )
}

А внутри index.ts просто экспортируйте button.tsx

export * from "./button"
...