javascript - módulo - ¿Cómo exportar una definición de tipo de flujo que se importa desde otro archivo?
leer archivo excel con javascript (4)
Dada una definición de tipo que se importa de otro módulo, ¿cómo puede volver a exportarla?
/**
* @flow
*/
import type * as ExampleType from ''./ExampleType'';
...
// What is the syntax for exporting the type?
// export { ExampleType };
Acabo de encontrar la necesidad de una sola línea para hacer esto para las clases predeterminadas de ES6, basándose en la respuesta de @ locropulenton''s. Supongamos que tienes
// @flow
export default class Restaurants {}
en un archivo de Restaurants.js
. Para exportarlo desde un archivo index.js
en el mismo directorio, haga lo siguiente:
export type {default as Restaurants} from ''./Restaurants'';
Esto esta funcionando
export type { MyType } from ''./types'';
Edición: Obtener esta sintaxis de cómo se hace en react-native-tab-view
La forma más sencilla de esta pregunta es "¿Cómo exporto un alias de tipo?" y la respuesta simple es "con export type
!"
Para tu ejemplo, puedes escribir
/**
* @flow
*/
import type * as ExampleType from ''./ExampleType'';
export type { ExampleType };
Puede preguntar "¿por qué es ExampleType
un alias de tipo?" Bueno cuando escribas
type MyTypeAlias = number;
Usted está creando explícitamente el alias de tipo MyTypeAlias
cuyo number
alias. Y cuando escribas
import type { YourTypeAlias } from ''./YourModule'';
Usted está creando implícitamente el alias de tipo YourTypeAlias
que alias la exportación YourModule.js
de YourModule.js
.
La respuesta aceptada es vieja y arrojando advertencias por mi parte. Dada la cantidad de vistas, aquí hay una respuesta actualizada que es compatible con el flujo 0.10+.
MyTypes.js:
export type UserID = number;
export type User = {
id: UserID,
firstName: string,
lastName: string
};
Usuario.js:
import type {UserID, User} from "MyTypes";
function getUserID(user: User): UserID {
return user.id;
}