2015-09-16 15 views

risposta

18

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.

+0

ma come riesportare facilmente tutti i tipi in un'unica riga? –

+1

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

+0

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

1

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; 
    } 

source

Problemi correlati