Javascript 如何设置流类型的默认值?

Javascript 如何设置流类型的默认值?,javascript,flowtype,Javascript,Flowtype,我已经定义了一个自定义流类型 export type MyType = { code: number, type: number = 1, } 如果不存在值,我希望type参数默认为1。但是,流正在抱怨意外标记= 这可以用Flow来完成吗 当前使用Flowv0.32.0类型声明中不能有默认值 可能的想法 使用类并使用属性初始化器初始化所有默认值:按照@basarat提出的想法,使用类。类以类型和值的形式存在 可以初始化该值。Flow识别建议的属性初始值设定项语法,因此使用Flow(用

我已经定义了一个自定义流类型

export type MyType = {
  code: number,
  type: number = 1,
}
如果不存在值,我希望
type
参数默认为
1
。但是,流正在抱怨
意外标记=

这可以用Flow来完成吗


当前使用Flow
v0.32.0

类型声明中不能有默认值

可能的想法
使用类并使用属性初始化器初始化所有默认值:

按照@basarat提出的想法,使用类。类以类型和值的形式存在

可以初始化该值。Flow识别建议的属性初始值设定项语法,因此使用Flow(用于类型)和babel(用于建议的功能支持)可以声明类,如下所示:


流及其允许您定义的类型不在javascript运行时中。这就是类型声明不支持值初始值设定项的原因。

函数参数也可以有默认值。这是ECMAScript 2015的一项功能

function method(value: string = "default") { /* ... */ }
除了其集合类型之外,默认参数也可以为void或完全省略。但是,它们不能为null

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

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

如果为组件设置,则可以设置默认值,如下所示:

type Props = {
  code: number,
  type: number,
}

const Component = (props: Props) => (
  <div>{props.code}</div>
  <div>{props.type}</div>
);

// default values
const defaultProps: Props = {
  code: '',
  type: 1,
};

Component.defaultProps = defaultProps;

export default Component;
类型道具={
代码:编号,
类型:数字,
}
常量组件=(道具:道具)=>(
{props.code}
{props.type}
);
//默认值
const defaultProps:Props={
代码:“”,
类型:1,
};
Component.defaultProps=defaultProps;
导出默认组件;

这是不可能的。此外,混合和匹配类型和值是没有意义的。但是在注释函数时,也可以这样做,即
函数(code:number,type:number=1){}
=1
部分处于值级别
type Props = {
  code: number,
  type: number,
}

const Component = (props: Props) => (
  <div>{props.code}</div>
  <div>{props.type}</div>
);

// default values
const defaultProps: Props = {
  code: '',
  type: 1,
};

Component.defaultProps = defaultProps;

export default Component;