машинопись: как экспортировать функции и интерфейсы - PullRequest
0 голосов
/ 20 февраля 2019

Мне нужен базовый пример о том, как экспортировать функции и связанные типы (интерфейсы) в машинописном тексте.

Например, у меня есть следующая функция readConfig, которая возвращает IConfig, и я хотел бы знать, какпоместить эту функцию и интерфейс в отдельный файл config.ts, а затем импортировать его.

interface IConfig {
  db: string,
  table: string,
  connstring: string,
  sources: Array<{
    db: string,
    connstring: string
  }>
}

import { safeLoad } from 'js-yaml';
import { readFileSync } from 'fs';

const config: IConfig = readConfig();

// [do stuff with config]


function readConfig(configFile: string = 'configuration.yml'): IConfig {
  const config: IConfig = safeLoad(readFileSync(configFile, 'utf8'));
  return config;
}

1 Ответ

0 голосов
/ 20 февраля 2019

some-file.ts

export interface IConfig {
  db: string,
  table: string,
  connstring: string,
  sources: Array<{
    db: string,
    connstring: string
  }>
}

export function readConfig(configFile: string = 'configuration.yml'): IConfig {
  const config: IConfig = safeLoad(readFileSync(configFile, 'utf8'));
  return config;
}

some-other-file.ts

import { safeLoad } from 'js-yaml';
import { readFileSync } from 'fs';
import { IConfig, readConfig} from 'some-file'

const config: IConfig = readConfig();

// [do stuff with config]
...