V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
firhome
V2EX  ›  程序员

前端同学,你们的 typescript 怎么运用在实际项目里的?

  •  
  •   firhome · 2019-02-22 18:14:21 +08:00 · 5364 次点击
    这是一个创建于 2106 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近公司有项目,也想上 typescript,但是公司主要项目都是基于 vue 的。
    尤大大也说现阶段不适合在 vue 里使用( https://www.zhihu.com/question/310485097/answer/591869966)

    所以我想问一下 各位前端同学 你们公司是怎么玩的?
    12 条回复    2019-02-23 10:48:58 +08:00
    piaoxue
        1
    piaoxue  
       2019-02-22 18:18:48 +08:00
    不会
    kakudesu
        2
    kakudesu  
       2019-02-22 18:21:11 +08:00
    vue3 ?
    Cbdy
        3
    Cbdy  
       2019-02-22 18:22:31 +08:00 via Android
    tomoya92
        4
    tomoya92  
       2019-02-22 18:26:32 +08:00 via iPhone   ❤️ 1
    angular
    shidianxia
        5
    shidianxia  
       2019-02-22 18:27:08 +08:00
    目前 vue-cli 3 中的项目模版对 typescript 支持已经比较好,配合 vue-class-component 和 vue-property-decorator 使用很棒棒哦。
    noe132
        6
    noe132  
       2019-02-22 18:29:55 +08:00
    我搭建的我司项目是 vue + typescript.
    框架是 nuxt.js
    boilerplate 参考 https://github.com/nuxt/nuxt.js/tree/dev/examples/typescript
    通过添加 nuxt module 给 nuxt 添加 awesome-typescript-loader(ts-loader 有些小坑)转码 ts 文件
    所有 vue 组件都拆成 template script style3 个文件,因为 vue 里直接写 ts 比较僵硬
    使用 vue-property-decorator 写 class style 的组件。
    vuex store 目前没有什么好的方案,所以目前 store 用的少。

    目前所有代码都是 ts,足够满足需求。部分地方需要手动写.d.ts 扩展已有类型。需要对 typescript 比较熟悉
    Ooooooooozil
        7
    Ooooooooozil  
       2019-02-22 18:33:52 +08:00
    angular
    ArcherD
        8
    ArcherD  
       2019-02-22 18:35:21 +08:00 via Android
    用 react。
    LancerComet
        9
    LancerComet  
       2019-02-22 18:38:12 +08:00
    在用自己轮的 ServiceContainer
    https://github.com/LancerComet/Vert-Core
    youngxhui
        10
    youngxhui  
       2019-02-22 22:06:20 +08:00 via Android
    写 angular
    beginor
        11
    beginor  
       2019-02-23 10:47:37 +08:00 via Android
    angular +1
    loudthunder
        12
    loudthunder  
       2019-02-23 10:48:58 +08:00   ❤️ 1
    刚开始学的前端

    因为一直写强类型的代码,所以到运行时才报错一直让我非常受不了。而且很多时候意味着有多少分支就要增加多少测试,特别是每条测试还要为各种类型考虑,这些事情本应该让编译器做了,转到我身上的话就非常难受了


    好在目前做的项目是由我主导(以及我一个人写,也就是个光杆司令哈哈哈),所以现在的所有代码都迁到了 ts

    react + typescript (本身支持就很好,MS 有自己的 starter kit 所以开始不困难)
    redux + typescript (本身支持也很好)
    自己的逻辑,基本的面象对象编程

    后端的话 nodejs + typescript 也非常自然,和写强类型语言的体验差不多了

    IDE 放在 vscode 里,vscode 对 ts 的支持也满足我现在的使用了

    因为现在前端部分还比较菜,react redux 之类都还在学习中,ts 也没有学得很深,基本是一边翻文档,一边照着以前写后端的经验来写,所以类似.d.ts 给包自定义类型之类的事情还不太会。但是好处是,常用的包 npm 里都有对应的 type 了,这点让我省不少力气,也是决定用 node 的原因
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1041 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 20:52 · PVG 04:52 · LAX 12:52 · JFK 15:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.