javascript - 扩展运算符破坏了函数定义中的默认属性分配
问题描述
// @flow
type Props = {
className?: string,
checked?: boolean,
[string]: string,
};
const Checkbox = ({
className = 'x',
checked = false,
...props,
}: Props) => {
console.log('render checkbox');
}
产生错误:
9: className = 'x',
^ Unexpected token =
10: checked = false,
^ Unexpected token =
12: }: Props) => {
^ Unexpected token =>
这是有效的 javascript,但被流程拒绝。删除...props
删除错误,但我需要这个功能。我做错了什么还是这是流程中的错误?
解决方案
这只是一个类型-o。额外的逗号
// @flow
type Props = {
className?: string,
checked?: boolean,
[string]: string,
};
const Checkbox = ({
className = 'x',
checked = false,
...props
}: Props) => {
console.log('render checkbox');
}
此外,您应该在类型的顶部定义索引器,如下所示:
// @flow
type Props = {
[string]: string,
className?: string,
checked?: boolean
};
推荐阅读
- access-token - Bot Framework Composer - 发布配置文件
- python - SyntaxError Line 18: TypeError: 'list' object is not callable
- javascript - 使用 ajax 将数组值从 PHP 传递到 JavaScript
- python - 如何查询父类上的两个子类的数据?(sqlalchemy)
- c++ - 类接收一个 char const * 作为参数(如何在代码中声明 txt.)
- javascript - 你能用anime.js为文本内容制作动画吗?
- rust - 我应该遵循哪个函数生命周期'a 或只是作用域生命周期?
- ios - 有没有办法在 SwiftUI 中仅针对某些视图强制使用横向模式?
- java - 嵌套在 LockoutRealm 中时如何在 Java 中获取 Tomcat CredentialHandler
- asp.net - 为什么 Visual Studio 不启动我的网站?