Как импортировать модуль как тип?

avatar
pyRabbit
8 августа 2021 в 18:37
23
1
0

Как мне реорганизовать следующий код, чтобы я мог просто импортировать объект, реализующий интерфейс Typescript. Я хотел бы сократить следующий код до одной строки:

import configuration from './config';
let config: Configuration = configuration;

config.ts

const dev = {
    backend: {
        host: "https://localhost:5001"
    }
}

const prod = {
    backend: {
        host: undefined
    }
}

const config = process.env.REACT_APP_STAGE === 'production' ? prod : dev

// eslint-disable-next-line import/no-anonymous-default-export
export default {
    ...config
}

types.ts

export interface Configuration {
    backend: BackendConfiguration
}

export interface BackendConfiguration {
    host?: string
}
Источник

Ответы (1)

avatar
Kelvin Schoofs
8 августа 2021 в 18:42
0

Вы можете использовать динамический импорт в выражении типа для определения типа модуля:

let config: import('./config') = configuration;

Я не совсем уверен, как это работает с импортом по умолчанию, возможно, вам придется добавить к нему .default.