ts语法、nvm的使用以及github访问速度

TS基础语法

let aa:string = "123"
let bb:number = 123
let cc:boolean = true
let dd:undefined = undefined
let ee:null = null
let list:Array<string> = ["1", '2', '3']
let list2:string[] = ["1", '2', '3']

interface Ibj {
    name: string,
    age: number,
    flag?: boolean,    // 可有可无
    [key: string]: any  // 除了上面的属性可以无线追加属性
}

let list3:Array<Ibj> = [
    {
        name: '',
        age: 18,
        // flag: true
    }
]

function test1(name: string, age: number): string {
    return name + ": " + age
}

const test2 = (name: string, age: number): number => {
    return Number(name) + age
}

type bj2 = {
    readonly name: string;
    age: number
}

let obj2:bj2 = {
    name: '',
    age: 12
}

//obj2.name = ""  // 只读属性,不能修改


interface IResult{
    id: string,
    age: number
}
interface Ilist{
    data: string;
    msg: boolean;
    result: Array<IResult>
}
let list4: Ilist = {
    data: '',
    msg: true,
    result: [
        {
            id: '',
            age: 20
        }
    ]
}


// 类和抽象类

class Person {
    name:string
    age: number
    constructor(name: string, age: number) {
        this.name = name
        this.age = age
    }

    run(flag: number): number{
        return flag
    }
}

const person = new Person("张三", 20)
const flag: number = person.run(2)
console.log(flag)

//  1、 public 公开的  2、protected 受保护的(只有自己和子类可以访问)  3、private 私有的,只有自己可以访问

// 抽象类和抽象方法(抽象类不能创建实例化对象)
abstract class Person2 {
    abstract run():number;
}
// 实现上面的抽象类里面的抽象方法
class Person3 extends Person2{
    run(): number {
        return 0;
    }
}

// 类中用接口约束
interface Iperson{
    name: string
    age: number
    run(): number
}
class Person4 implements Iperson{
    name: string
    age: number
    run():number {
        return 1
    }
}

// 泛型约定数组
let arr1:Array<number> = [1, 2, 3, 4]

// 泛型约定方法(function)
function test11<T, U>(name: T, age: U):T {
    return name;
}
test11<string, number>("张三", 20)

// 泛型约定字符串和数组的leng
interface Ilength {
    length: number
}
function test12<T extends Ilength>(param): number {
    return param.length
}
test12:<string> ("nihaoya")
test12:<Array<number>> ([1, 2, 3])
test12:<Array<string>> (['1', '2'])

interface Idata1<T, U>{
    a: T,
    b: T,
    c: U
}
let data1: Idata1<number, string> = {
    a: 1,
    b: 1,
    c: '123'
}

react 事件点击对象

// 获取事件点击对象
onClick = { () => handleClick() }

const handleClick = ( e: MouseEvent<HTMLButtonElement> ) => {}

react 输入框一些其它的事件对象

<input onInput={ () => handleInput() } />

const handleInput = ( e: ChangeEvent<HTMLInputElement> ) => {}

nvm的使用

由于nvm下载在github上,访问会特别的慢,所以需要配置
1、打开链接 https://gitlab.com/ineo6/hosts/-/raw/master/next-hosts
2、找到hosts文件,将打开的链接的内容复制进去
window + R 打开cmd 输入drivers 找到etc/hosts文件
3、访问链接 https://github.com/coreybutler/nvm-windows/releases 下载nvm.exe包,点击下一步安装即可
4、nvm -v 查看nvm版本号
nvm的命令:

1、查看所有的node版本
  nvm list available
  
2、查看已经安装node版本
  nvm ls
  
3、下载node版本
nvm install 版本号(16.19.04、切换node版本
nvm use 版本号(16.19.05、查看自己电脑安装过的node版本
nvm list

6、卸载node
nvm uninstall 版本号(16.19.0
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值