TypeScript | Type 研究心得纪录 1

我习惯理解一个东西,可以套用日常的生活经验,找出类比、拟人化会帮助我更好理解,今天的议题是最近看到 Type vs Interafce 看起来写法差不多,让我兴起两者有什麽不一样的疑问,所以回头去找相关资料,众所周知有位大大把TypeScript 写得很清楚又平易近人,我在阅读其中两篇帮助我了解 Type 用法,并记录心得

Day 02. 前线维护・型别推论 X 注记 - Type Inference & Annotation - iT 邦帮忙::一起帮忙解决难题,拯救 IT 人的一天

TypeScript 观念

  1. 什麽是TypeScript?
    1. 让 js 可以实现强型别特性的开发语言,并可进行型别检查,减少开发错误
    2. 我把它称作开发者的 贾维斯,内建强大功能提供使用,帮助你严谨的开发程序
  2. 为什麽我要用 TypeScript ?
    1. 因为 js 弱型别,让他变得得过且过,因此在不自律当开发习惯中,埋下雷,让产品运行错误
    2. 因为 TypeScript 型别注记功能,让他可以利用注记去检查我的变数运用是否严谨(是否心口不一,原本是 string 後来变成 boolean ),像个小管家
    3. 因为 TypeScript 型别注记功能,让不只我,其他的开发夥伴,看到注记就知道该怎麽正确使用这段程序码、接受督促,等於写一份注记,帮助大家降低错误
  3. 什麽是型别?
    1. 换个生活说法 “ 样子、模样 ”,用来描述任一物质的定义(ex. 纯水 - 无色透明液体)
    2. 只是在资料的世界,我们用不同标示来表示不同型别,就像语言一样,目的都是沟通和运用 (ex. "3" , 3 , true )
    3. 型别的理解,可以以描述任一物质为基础,做狭义、广义的认知(只要你觉得他是一个物质,那他就可以是一种型别)
    4. 原始型别:最基础存在,可以被复合应用成为新的型别(ex. "3":string //纯水 )
    5. 物件型别: 原始型别的复合应用,用来表示更复杂的情境 (ex. ["3","3" ]:Object //红茶)
    6. 明文型别:广义型别,你自己认为他是什麽,他就是什麽 (珍珠奶茶型别,牛奶、红茶、珍珠、冰块)
  4. 本文标示重点之理解
    1. 型别推论目的是即使没有注记型别,也可透过推论变数型别,作爲验证检查的基础,达成除错目的
    2. any 是造成型别混乱根源,是因为什麽型别都可以的特性也可以是一种型别 ( any ),但什麽都可以代表就是没有规则可以随意变动,那就跟没有使用ts 一样,因此并不能达成使用 ts 型别检查、降低错误发生之目的,随之带来混乱
    3. 延迟性指派,是指 只命名变数,却没有赋值行为,会让ts 自动判定为 any ,根据第二点,就会带来混乱
    4. 对延迟性指派,进行型别注记,为了解决 ts 发动自己型别推论的技能,让变数被注记成 any ,造成混乱,不如就在变数命名时候,就注记为指定型别,让变数受到 ts 监督验证
    5. 型别注记的目的,帮助开发者了解变数型别与应用方式,避免 ts 贴心自动推论 any,造成混乱

<<:  [进阶指南] 深入 JSX( Day25 )

>>:  D24 - 走!去浏览器偷听 Capturing & Bubbling

Day29. 虽然今年是2021,但我们要做2048(3)

来到2048的最後一天!看看这麽多的删除线!虽然可能我们不一定能清光我们购物网站上的愿望清单,但是今...

Day13: GuardDuty结果汇出至S3、发送告警Email设定

如何把GuardDuty找到的结果汇出到S3储存 GuardDuty找到的结果会保留90天,如果想要...

[Day07] Tableau 轻松学 - 开始画面

前言 每个软件的开始画面,或多或少会有些好用但总是被我们忽略的功能,等我们使用一段时间後才从别人那边...

【Day 02】Word 很大,你要看一下 - Microsoft Office Phishing

环境 Microsoft Office 2019 这篇文主要介绍我在 Microsoft Offic...

Day 06 - 那些~帮助开发的套件

如果有错误,欢迎留言指教~ Q_Q classnames: 可以依照逻辑条件的将 classNam...