Data una definizione di tipo importata da un altro modulo, come riesportarla?Come si esporta una definizione del tipo di flusso importata da un altro file?
risposta
La forma più semplice di questa domanda è "come esportare un alias di tipo?" e la risposta semplice è "con export type
!"
Per esempio, è possibile scrivere
/**
* @flow
*/
import type * as ExampleType from './ExampleType';
export type { ExampleType };
Si può chiedere "perché è un tipo ExampleType
alias?" Beh, quando si scrive
type MyTypeAlias = number;
Si sta creando in modo esplicito il tipo alias MyTypeAlias
che alias number
. E quando si scrive
import type { YourTypeAlias } from './YourModule';
Si sta implicitamente la creazione del tipo alias YourTypeAlias
che alias il YourTypeAlias
esportazione di YourModule.js
.
ma come riesportare facilmente tutti i tipi in un'unica riga? –
In base a questo post, 'export type {ExampleType}' non è una sintassi supportata. https://flowtype.org/blog/2015/02/18/Import-Types.html Le informazioni nel post non sono aggiornate? Dove è documentata questa sintassi? Non è nemmeno documentato in https://flowtype.org/docs/modules.html. – Gajus
Per la cronaca, ho compilato un problema correlato con Babel https://github.com/babel/babel/issues/5538 riguardante il 'babel-plugin-transform-flow-comments'. – Gajus
Questo è il lavoro
export type { MyType } from './types';
Edit: Ottenere questa sintassi da come si è fatto in react-native-tab-view
La risposta accettata è vecchio e gettando le avvertenze sulla mia estremità. Data la quantità di visualizzazioni, ecco una risposta aggiornata compatibile con il flusso 0.10+.
MyTypes.js:
export type UserID = number;
export type User = {
id: UserID,
firstName: string,
lastName: string
};
user.js:
import type {UserID, User} from "MyTypes";
function getUserID(user: User): UserID {
return user.id;
}
- 1. Come definire una definizione del tipo ciclico?
- 2. grunt-usemin: definizione del flusso personalizzato
- 3. Esportazione di una libreria importata
- 4. Come ottenere un flusso FILE * da un descrittore di file?
- 5. Come chiamare una funzione da un altro file di classe
- 6. Miscele con annotazioni del tipo di flusso
- 7. Compreso d.tS file di definizione del tipo di VSCode
- 8. come chiamare una funzione da un altro file?
- 9. Come si esegue un file bat in background da un altro file bat?
- 10. Chiama un python unittest da un altro script ed esporta tutti i messaggi di errore
- 11. Quando si utilizza ES6, in che modo una funzione importata può essere indefinita in un file e non in un altro?
- 12. Unità: come specificare di utilizzare un'istanza specifica di un tipo quando si risolve un altro tipo
- 13. default tipo di funzione di esportazione definizione
- 14. Interfaccia importata da esportazione TypeScript
- 15. Come accedere ai campi in una struct importata da un file .mat usando loadmat in Python?
- 16. Come utilizzare una classe PHP da un altro file
- 17. chiare su definizione del tipo di foldl
- 18. Node.js Combina modulo/esporta da più file
- 19. Come creare un file di definizione del dattiloscritto "modulo esterno" da includere con un pacchetto npm?
- 20. Esporta dati da InfluxDB
- 21. Come usare #define da un altro file?
- 22. Come modificare una variabile del modulo da un altro modulo?
- 23. Come si crea un tipo parametrizzato da una macro?
- 24. Come eseguire un file Python non in una directory da un altro file Python?
- 25. Come rendere la libreria statica importata dipendente da un'altra libreria statica importata in CMake?
- 26. Esporta CoreAnimation sul file video
- 27. Esegui un insieme di linee da un altro file R
- 28. Come utilizzare una funzione da un xsl in un altro
- 29. Diagramma di flusso altro se
- 30. Caricare un file da un altro progetto
Invece di scrivere 'tipo di importazione * come ExampleType da './ExampleType';' è possibile scrivere 'tipo di importazione ExampleType da './ ExampleType '; ' –