lanten 最近的时间轴更新
lanten

lanten

V2EX 第 293805 号会员,加入于 2018-02-24 15:07:15 +08:00
lanten 最近回复了
@Robertwhite 考虑一下把高阶组件换成修饰器,需要复用的东西采用抽象派生,那才叫优雅
@ReferenceE 只有用 function 关键字才会提升吧?在用 TS 的情况下,似乎只能用箭头函数的方式赋予 React.FC 泛型,还有 React.memo,也不能用 function 关键字声明。

函数式组件每一次 rerender 都会执行函数体内的所有代码,需要通过 useEffect 和 useCallback 优化,增加了开发者的心智负担,尤其对于新手而言更容易写出低性能代码。

函数式组件还不能被继承,我认为函数式组件除了 hooks 复用一无是处
坦率一点不好吗? 筛选一下身边的朋友,离那些口是心非的垃圾玩意儿远一点。还有这根程序员有什么关系?
你们那么多用 GraphQL 的大佬,我想问一句,字符串模板里面怎么整合 TS 类型?
213 天前
回复了 BoringTu 创建的主题 JavaScript 为什么你们要选择 TypeScript?
理性的争论是好事,帖子本身是有价值的。
看了各位的观点收货颇丰,我总结一下我所认同的观点:

## 优点
- 类型推导, 一切可溯源
- ide 代码补全增强, 降低心智负担
- 第三方库不看文档直接打点就用
- 映射后端接口, 确保字段的准确性
- 依然可以保持 JS 动态类型特性, 可以通过 as, any 逃课。
- 类型即文档 (且与代码深度集成),大家都不喜欢写文档。类型定义了,文档就有了
- 易于维护, 随便翻一个函数,不用看上下文,就知道参数类型,返回值类型
- 规范化约束整个团队
- 易于修改 (变量使用 F2 重命名)

## 缺点
- 开发成本 +
- 学习成本 ++
- 用人成本 +++
编译后的 React 代码,这根本不是源码。
其实函数类型的定义就是行参和返回值类型定义,可以直接用 typeof 推断。

```ts
function foo(strArr: string[]): string {
return strArr.join(',')
}

type Foo = typeof foo

```

也可以用 interface 定义函数类型'

```ts
interface F {
(strArr: string[]): string
}

const fn: F = strArr => {
return strArr.join(',')
}
```
@14ccc 他说的没毛病,坦荡的人并不畏惧这种程度的监听,不畏惧不代表不介意
关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   4058 人在线   最高记录 5497   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 13ms · UTC 03:07 · PVG 11:07 · LAX 19:07 · JFK 22:07
♥ Do have faith in what you're doing.