繁体   English   中英

Typescript 中函数的类型定义

[英]Type definition for functions in Typescript

在最近的编码情况中,我发现 (A) onPress?(): void是 (B) onPress?: () => void的有效替代方案。 我确实更喜欢 B 而不是 A,因为它看起来在 TypeScript 社区中更常见,并且因为定义你的道具名称的一致性, ? 如果需要可选道具,用:分隔,然后是你的类型。

我的问题是:是否有任何文档说明 A 也是正确的,或者它与 B 的不同之处? 还是一样? 还是两者中的一个更受欢迎?

提前致谢!

type Props = {
   onPress?(): void
}

type OtherProps = {
   onPress?: () => void
}

const instanceOfProps: Props = {
    onPress: () => {}
}

const instanceOfOtherProps: OtherProps = {
    onPress: () => {}
}

在这种情况下,A 只是 B 的语法糖。 我相信它基于ES6 object initializers ,它支持使用onPress() {...}作为函数值。 但是,由于您正在创建一个类型,TypeScript 只关心类型而不关心实现,因此{...}被替换为: type

我个人更喜欢 A,因为它更短,更符合 ES6,并且看起来更像 TypeScript 中的属性类型。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM