使用以下代码,我希望Flow会抱怨默认道具native: pc 0000000000049c34 /system/lib/libc.so (tgkill+12)
native: pc 00000000000474cd /system/lib/libc.so (pthread_kill+36)
native: pc 000000000001bbe3 /system/lib/libc.so (raise+10)
native: pc 000000000001848d /system/lib/libc.so (__libc_android_abort+36)
native: pc 00000000000164ec /system/lib/libc.so (abort+4)
native: pc 0000000000331875 /system/lib/libart.so (_ZN3art7Runtime5AbortEv+228)
native: pc 00000000000f44db /system/lib/libart.so (_ZN3art10LogMessageD2Ev+2226)
native: pc 000000000025a92f /system/lib/libart.so (_ZN3art9JavaVMExt8JniAbortEPKcS2_+1550)
native: pc 000000000025ad5b /system/lib/libart.so (_ZN3art9JavaVMExt9JniAbortFEPKcS2_z+74)
native: pc 0000000000278577 /system/lib/libart.so (_ZN3art3JNI15CallVoidMethodVEP7_JNIEnvP8_jobjectP10_jmethodIDSt9__va_list+470)
native: pc 0000000000062c9f /system/lib/libandroid_runtime.so
不是foo
而是string
。
number
(代码可在https://flow.org/try/上使用)
使用// @flow
import React from 'react'
type Props = {
foo: string
}
class ClassComponent extends React.Component<Props> {
static defaultProps = {
foo: 23
}
render () {
return <div>foo: {this.props.foo}</div>
}
}
这可以按预期工作,但由于v0.52
Flow不再关心defaultProps。
v0.53
与// @flow
import React from 'react'
type Props = {
foo: string
}
class ClassComponent extends React.Component<Props> {
static defaultProps = {
foo: 23
}
render () {
this.props.foo = 23 // Flow complains now with the expected error
return <div>foo: {this.props.foo}</div>
}
}
的行为相同。
这是一个错误还是我错过了什么?