前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TypeScript学习笔记

TypeScript学习笔记

作者头像
前端小哥哥
发布2023-05-04 19:48:19
1140
发布2023-05-04 19:48:19
举报
文章被收录于专栏:前端小哥哥

个人理解

定义

‘TypeScript’-顾名思义,就是有Type的Script


那么它和没有Type的Script有什么不一样呢,例如某Java前缀的Script 举个例子:实际开发需求中我们要定义一个商品名称的变量为goodsName(ps:众所周知商品名称都必须是要字符串的)

代码语言:javascript
复制
// js中定义一个变量,先赋值一个字符串
let goodsName = 'apple' // 很好,看起来都一起正常
// 然鹅,一位刚失恋的程序员哥哥,不小心把它改成一个数字(说笑,程序员哪会有女朋友)
goodsName = 520 // 这时候程序也没有阻止小哥哥这种赤裸裸的示爱行为
// 甚至可以改成布尔值
goodsName = true
// -----------------
// 可以想想刚失恋的小哥哥,把这个变量提交给后端的接口
// 最后给产品发现了
// 后端调查发现是前端提交的数据类型错误
// 顺利摔锅给前端
// 从此小哥哥就步入了人生的低谷,情场事业双失😔

然而如果这时候这位程序员小哥哥用上了TypeScript

代码语言:javascript
复制
// 同上也先定义一个变量
let goodsName: string = 'apple' // 看看有什么不同?没错,就是多了个string
goodsName = 520 //这时候就会有一条红线在变量下方
// Error, number不是string类型
// -----------------
// 看到这条提示的红线,小哥哥也终于意识到了
// 他的爱情也像这条红线那样
// 已经到了高亮的结束边缘
// 最后小哥哥看着那条红线
// 突然对爱情重拾希望,然后不顾红线的错误提示,提交给后端
// 结局同上

一些踩过的坑

可选属性

代码语言:javascript
复制
interface SquareConfig {
  color?: string;
  width?: number;
}

任意数量的其它属性

代码语言:javascript
复制
interface SquareConfig {
 [propName: string]: any;
}

只读属性

代码语言:javascript
复制
interface Point {
    readonly x: number;
    readonly y: number;
}
let p1: Point = { x: 10, y: 20 };
p1.x = 5; // error!

函数类型

代码语言:javascript
复制
//方法1
function add(x: number, y: number): number {
    return x + y;
}

//方法2
let myAdd = function(x: number, y: number): number { return x + y; };

把类当做接口使用

代码语言:javascript
复制
class Point {
    x: number;
    y: number;
}

interface Point3d extends Point {
    z: number;
}

let point3d: Point3d = {x: 1, y: 2, z: 3};

总结

  1. 提示真的很爽
  2. 会增加写类型的时间
  3. 大型项目来说上面花的时间是值得的,后期维护时间会变少
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-05-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 个人理解
    • 定义
      • 一些踩过的坑
        • 可选属性
        • 任意数量的其它属性
        • 只读属性
        • 函数类型
        • 把类当做接口使用
    • 总结
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档