objects - typescript method
¿Por qué la limitación de exportar una interfaz por defecto en TypeScript? (1)
TypeScript v2.4.0 permite export default interface
. Aquí está la solicitud de extracción que introdujo el cambio.
Ahora podemos hacer ambas cosas:
// Foo.ts
export interface Foo { }
// Bar.ts
export default interface Bar { }
// Baz.ts
import { Foo } from "./foo";
import Bar from "./bar";
export class Baz implements Foo, Bar
{
}
Estoy usando TypeScript 1.5 beta, y estoy tratando de exportar una interfaz como la exportación predeterminada. El siguiente código provoca un error en Visual Studio y WebStorm:
export default interface Foo {...}
Sin embargo, el siguiente código funciona bien:
interface Foo {...}
export default Foo;
¿Es esto por diseño, es un error o estoy haciendo algo mal?
EDIT: Gracias por tu respuesta. Sin embargo, plantea la pregunta, ¿cuál es la forma aceptada de importar una interfaz utilizando la sintaxis del módulo ES6?
Esto funciona:
// Foo.ts
export interface Foo {}
// Bar.ts
import {Foo} from ''Foo''; // Notice the curly braces
class Bar {
constructor(foo:Foo) {}
}
Pero, como eso funciona, ¿por qué no permitir una exportación predeterminada y guardar las llaves?
// Foo.ts
export default interface Foo {}
// Bar.ts
import Foo from ''Foo''; // Notice, no curly braces!
class Bar {
constructor(foo:Foo) {}
}