初学者怎么科学地过渡到typescript

lemonbigpig -
初学者怎么科学地过渡到typescript
初学者怎么科学地过渡到typescript前言

先介绍一下我自己的情况啊,大学毕业后花了半年左右时间自学前端,大学在培训机构进修过(可能当时人傻钱多吧,捂脸),然后就转战魔都,然后呢爱上了这个城市,也一直奋斗在这片土地。然后现在从事前端差不多8,9年时间了,所以也有一些时间沉淀下来逼迫自己写一些文章,如果能对学弟学妹有一丝丝作用,那就达成目的了,哈哈啊。当然如果有大神觉得不太合理,觉得格局太小,有局限性等,都是正常的,期待大家的声音,基于就事论事的基调我是完全可以接受的。

学习前请先问自己几个问题typescript是什么?typescript要解决什么样的问题?如果我不使用typescript将对我造成什么影响?

为什么学姐我要把这三点列出来,因为世界上好的东西很多,如果学习一个东西的同时能给你带来一定的价值(这个价值后面我会说说我的理解),我们根据某件事情所具有的价值把自己想学习的东西进行排序,就可以把自己的时间用在刀刃上,有了收获你就会越来越激励着自己往上奋斗。好的此处学弟学妹们就当作一碗鸡汤吧。接下来我们就好好的来唠唠嗑,我要开始了哦。

什么是价值

这里我谈一下我的理解,对于社畜的我来说,就是赚钱,然后早点退休,早点财务自由,没错就是这么直白,所以能让自己的时间换取更多自己目前最需要的资源我觉得就是价值,而不是靠消耗自己的健康。下面我们来谈谈学习typescript的方法

学习typescript的方法

如果你已经弄明白前面的1,2,3点了,那么现在我们的焦点就聚集到具体怎么学习typescript这个问题上了,下面我分享一下我自己的方法论。这里有一个前提就是已经写过一段时间的js哈。

去typescript的官网把api写撸一遍,一定是官网千万不要拿来主义随便看一下百度上的文章,因为言论自由,不要浪费时间去筛选正确的内容,认准官网就好了。学习的过程只有自己提出问题解决问题才能锻炼自己,才能印象就深刻,有自己的见解;基础语法差不多了那就把自己之前写过的js,全部换成ts语言全部写一部,因为实践才是检验整理的唯一标准,只有能解决实际问题的方案,才值得在项目里引入;如果是使用像webpack,rollup等这样的前端工程化项目,那么请你一定不要使用什么都健全的脚手架,而是在旧项目中自己去扩展和配置typescript这个功能,可以保证这个过程你会有很多问题,所以请解决掉他们,然后以后干掉他们就是分分钟;对比差异点,可以达成同样效果的api,他们之前又有什么差异呢?如果不明白差异,那么很可能会出现不合理或者不那么正确的使用。成果检验

今天看到了单向链表,所以就用ts转换了一下,所以如果你觉得就这太简单了,分分钟可以搞定,那么你真的太优秀了,哈哈哈哈哈哈哈哈。

/**
 * @author lemonbigig
 * @description 用ts定义一个单项链表,目的使用来学习ts,而不是算法哈
 */

/**
 * @description 来来先上一个node节点 这里用了ts的接口 interface
 * @param data 数据
 * @param next 指向下一个节点的指针
 * @param T 利用泛型参数
 */

interface INODE<T> {
    data: T;
    next: INODE<T>

}

/**
 * @description 定义链表的结构 这里用了 ts的泛型类
 * @param length 链表长度
 */
class TLINKLIST<T> {
    length: number = 0;
    // '|' 是类型或运算符
    head: INODE<T> | null = null;
    push(pnode: INODE<T>): void {
        let node: INODE<T> = pnode;
        if (this.head === null) {
            this.head = node;
        } else {
            var current = this.head;
            while (current.next !== null) {
                current = current.next;
            }
            current.next = node;
        }
        this.length++;
    }
    /**
     * @description 根据索引获取对应节点的值
     */
    get(pos: number): T | null {
        if (pos < 0 || pos >= this.length) return null
        let index = 0;
        let current = this.head;
        while (index++ < pos) {
            current = current.next;
        }
        return <T>current.data;
    }
}

/**
 * @description test case
 */
const linklist = new TLINKLIST<string>();
linklist.push({data: '111', next: null});
linklist.push({data: '2222', next: null});
linklist.push({data: '3333', next: null});
linklist.push({data: '4444', next: null});
const pos = linklist.get(3);
const pos1 = linklist.get(6);

console.log('---linklist----:', linklist);
console.log('---pos----:', pos, '----pos1-----:', pos1);
写给有缘的学弟学妹

对于那些想从事计算机行业的学弟学妹们,不管你们是前端还是后端还是ai人工智能还是vr等,毕业后的第一份工作就相当于人的出生一样,能进大的公司就进大公司,最好是行业的top3,因为这会给你们在以后的求职路上发挥不凡的“品牌效应”价值。所以可以在大三的时候反正越早越好,去那一些靠谱的,正规的求职app上去看一下自己心仪的公司和职位现在的要求,然后提前准备。切记不要乱报班。

特别申明:本文内容来源网络,版权归原作者所有,如有侵权请立即与我们联系(cy198701067573@163.com),我们将及时处理。

Tags 标签

typescriptreact.jsvue.jsnpmnode.js

扩展阅读

加个好友,技术交流

1628738909466805.jpg