2016-09-28 35 views
5

ben hiçbir değer varsa type parametre 1 olarak varsayılan istediğiniz özel Akış tipAkış tipi için varsayılan değer nasıl ayarlanır?

export type MyType = { 
    code: number, 
    type: number = 1, 
} 

tanımladık. Ancak, Flow Unexpected token = ile şikayet ediyor.

Flow error

bu Akış ile yapılabilir?

Şu Flow v0.32.0 kullanarak.

+0

Bu mümkün değil. Ayrıca, türleri ve değerleri karıştırıp eşleştirmek mantıklı değildir. – gcanti

+0

Ancak, bir fonksiyona açıklama eklerken bunu yapmak mümkündür, yani fonksiyon (kod: numara, tip: sayı = 1) {} '. – amb

+0

'= 1 'kısmı değer seviyesindedir – gcanti

cevap

3

Git önerilmekte ve sınıfını kullanın. Bir sınıf hem bir tür hem de bir değer olarak bulunur.

Değer başlatılabilir.

// @flow 
export class MyType { 
    code: number; 
    type: number = 1; 
}; 

Flow, ve bunu tanımlamak sağlar türde değildir: Akış Eğer this gibi sınıf ilan edebilir böylece (önerilen özellik desteği için) (tipleri için) Flow ve Babel kullanarak, önerilen bir özellik başlatıcısı sözdizimi tanır Javascript çalışma zamanında mevcut. Bu nedenle tür bildirimleri değer başlatıcılarını desteklemez.

2

İşlev parametrelerinin de varsayılanları olabilir. Bu onların set türüne ek olarak

function method(value: string = "default") { /* ... */ } 

ECMAScript'e 2015 bir özelliğidir, varsayılan parametreleri de geçersiz veya tamamen atlanmış olabilir. Ancak, boş olamazlar.

// @flow 
function acceptsOptionalString(value: string = "foo") { 
    // ... 
} 

acceptsOptionalString("bar"); 
acceptsOptionalString(undefined); 
acceptsOptionalString(null); 
acceptsOptionalString(); 

https://flow.org/en/docs/types/primitives/#toc-function-parameters-with-defaults

İlgili konular