2017-01-23 15 views
1

У меня есть метод, который преобразует схему JSON в интерфейс «string» интерфейса. Это выглядит следующим образом:Можно ли экспортировать интерфейс ввода-вывода в виде вывода из метода?

// Входной

var scriptSchema = { 
    type: 'object', 
    properties: { 
     src: { type: 'string' }, 
     name: { type: 'string' }, 
     author: { type: 'string' } 
    }, 
    required: ['src','name'] 
} 

// Выходные данные (как строка)

interface IScript { 
    src: string, 
    name: string, 
    author?: string 
} 

Я хотел бы избежать создания файла для размещения этого, если это возможно.

В идеале, если возможно, я хотел бы сделать что-то подобное.

export interface IScript = JSON.parse(...) //etc, etc 

Любые предложения?

ответ

0

Нет - по крайней мере, не без испускания действительного нового кода TypeScript и его компиляции в качестве постэтапного.

Это ограничение связано с тем, что TypeScript является языком Statically Typed и он должен иметь всю информацию о типе во время проверки типов и [транс] компиляции. Нет Значение из будущего исполнения программы доступно при этом.

Похоже, конечная цель - «динамически генерировать» различные типы типов. В этом случае использование отдельных файлов (и отдельная фаза генерации), вероятно, наиболее ... полезно.

+0

Да, это был мой вывод. Я задам этот вопрос еще час, если не обнаружу чудес, я приму этот ответ. – Proximo