Модули Typescript 1.5 импортируют ошибки экспорта

У меня проблема с повторным экспортом в моем проекте typescript.

У меня есть класс Layer, и я объявляю его так:

// Layer.ts  
export default class Layer{//code}

И у меня есть еще один файл для реэкспорта всех связанных файлов

// layers.ts
export Layer from "./Layer";

При компиляции получаю следующие ошибки:

src/layer/layers.ts(1,14): error TS1005: ';' expected.
src/layer/layers.ts(1,19): error TS1005: ';' expected.
src/layer/layers.ts(2,1): error TS1128: Declaration or statement expected.
src/layer/layers.ts(2,24): error TS1005: ';' expected.
src/layer/layers.ts(2,29): error TS1005: ';' expected.

Также еще одна связанная ошибка: при объявлении интерфейса с ключевым словом export следующим образом:

export default interface MyInterface<V>{
    method():V;
}

Я снова получаю эту ошибку:

MyInterface.ts(1,26): error TS1005: ';' expected.

person David Limkys    schedule 08.05.2015    source источник


Ответы (1)


Для первой части: export { default as Layer} from './Layer';

Во второй части интерфейс нельзя экспортировать как default, так как интерфейсы ничем не представлены в сгенерированном коде javascript.

Поэтому избавьтесь от ключевого слова по умолчанию:

export interface MyInterface<V>{
    method():V;
}

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

import { MyInterface } from './MyInterface';

class A implements MyInterface<string> {}
person curpa    schedule 08.05.2015
comment
Спасибо, это должно быть задокументировано ... Это спецификация сценария ecma6 или выбор ts? Я ожидал, что export Layer from './Layer'; будет работать, так как это значение по умолчанию. - person David Limkys; 09.05.2015