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.0)
4、切换node版本
nvm use 版本号(16.19.0)
5、查看自己电脑安装过的node版本
nvm list
6、卸载node
nvm uninstall 版本号(16.19.0)