2016-09-28 5 views
5

가 나는 값이 존재하지 않는 경우 type 매개 변수가 1 기본적하고자하는 사용자 정의 흐름 유형흐름 유형의 기본값을 설정하는 방법은 무엇입니까?

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

를 정의했습니다. 그러나 Flow는 Unexpected token =으로 불평하고 있습니다.

Flow error

이이 흐름과 함께 할 수 있습니까?

현재 v0.32.0 플로를 사용 중입니다.

+0

그것은 불가능합니다. 또한 유형과 값을 혼합하고 일치시키는 것은 의미가 없습니다. – gcanti

+0

하지만 함수'function (code : number, type : number = 1) {}'에 주석을 달 때이 작업을 수행 할 수 있습니다. – amb

+0

'= 1 '부분이 값 수준에 있습니다 – gcanti

답변

3

이동 제안을하고, 클래스를 사용합니다. 클래스는 유형 및 값으로 존재합니다.

값을 초기화 할 수 있습니다.

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

흐름, 그것은 사용자가 정의 할 수있는 유형을하지 : 흐름은 this처럼 클래스를 선언 할 수 있도록 (제안 기능 지원) (유형의) 흐름 및 바벨을 사용하여, 제안 된 속성 초기화 구문을 인식 자바 스크립트 런타임에 존재합니다. 왜 타입 선언은 값 초기화자를 지원하지 않습니다.

2

함수 매개 변수도 기본값을 가질 수 있습니다. 이것은 그들의 세트의 형태뿐만 아니라

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

ECMAScript를 2015의 기능입니다, 기본 매개 변수는 무효 또는 전부를 생략 할 수있다. 그러나 null이 될 수는 없습니다.

// @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

관련 문제