• ll
    2021-11-17
    几节课学下来,发现工程就是“灵活与稳定”之间的平衡。 上节是 template 与 JSX 各自的优缺点,实际上也能看出各自设计对“灵活”与“稳定”的取舍。我非专业转行,对于类型系统有点学习体会: 1. 动态 vs 静态语言 从运行过程上说,动态比较简单,你写代码,然后丢给解释器运行,如果出错,就会报运行时错误 (runtime error);静态语言比动态语言多个“门卫”,编译器,代码在运行前,它帮你检查一边,出问 题报错,报的是编译错误(compile error)。编译出错的代码根本不会走到运行时阶段。 2. 怎么实现的 静态语言怎么检查代码,通过“规则”,这个规则就是所谓的"强类型系统"。 简单的说就是"先定规则,再执行”,“先得有类型,才能执行”。这也是为什么它在“灵活性”上不如动 态语言。 3. 超集 刚开始看这个定义的时候也没搞太明白,后来就清楚了;各个厂家的浏览器中“实现”JavaScript 是根 据 ECMAScript 标准。而浏览器只能看的懂 JavaScript。 所以 TypeScript 最终都会“编译”成 JavaScript 跑在宿主环境里。哪些在 ts 中看到的 “超级” 语法,关 键词 最终都会变成 js。 4. 也挑个小错 let todos:Ref(Todo[]) = ref([{title: "学习Vue", done: false}]) 中,应该是 Ref<Todo[]> 吧
    展开

    作者回复: 很棒的总结 代码更新啦

    
    24
  • 费城的二鹏
    2021-11-17
    了解了 TypeScript 的使用后,你可以回想一下 Vue 2 里有哪些写法是对 TypeScript 不友好的,以及我们应该怎么在 Vue 3 优化呢? 在公司项目使用 ts 开发 vue2,感觉这个写法掩盖了很多 vue2 本身的概念。比如说 data 方法没了,watch 方法没了,都变成了注解,不太容易理解到 vue 本身的设计思路。

    作者回复: 因为vue2中的this只能在ts中标记any,其实丧失了ts的意义,所以vue2中使用ts使用的事封装好的class语法,这个语法其实已经在vue3被废弃了,可以考虑使用composition来适配vue2

    
    2
  • 费城的二鹏
    2021-11-17
    const emit = defineEmits<{ 代码片段貌似不完整

    作者回复: 更新啦

    
    1
  • Geek_0c8aff
    2021-11-30
    typescript加餐++++++

    作者回复: 已加餐

    
    
  • 以梦为马
    2021-11-22
    TS 加个餐吧,如何系统得在 Vue3 项目实战 TS,感觉现在 TS 都快成标准了,都在用

    作者回复: ts加餐在写了

    
    
  • Geek_073752
    2021-11-18
    大圣老师,有计划TypeScript加餐吗?

    作者回复: 大家需要的还挺多,肯定会有的

    
    
  • Geek_a84b8d
    2021-11-17
    希望大圣老师有TS的加餐
    共 1 条评论
    63
  • 关关君
    2021-11-19
    加餐 想看 TypeScript 和 Vue3 的 项目最佳实践
    
    10
  • 东东
    2021-11-17
    老师,后面的项目可以用TS写不?
    
    10
  • 哎哟迪奥
    2021-11-17
    typescript yyds,大圣大佬yyds,加餐yyds。
    
    5