ts基础入门

本文详细介绍了TypeScript的基本数据类型,包括布尔型、数字型、字符串、数组、undefined和null,以及any类型的用法。接着讲解了TypeScript中的或与非操作,展示了如何定义对象接口,并探讨了对象接口的可选项、继承和实现。此外,还涉及了类型断言、枚举、泛型等高级特性,为深入理解TypeScript提供了全面的知识点。
摘要由CSDN通过智能技术生成
一 数据基本类型
// 1 布尔型
let boo:boolean = true;
boo = false //只能是等于布尔值

// 2 数字型
let num:number = 123;

// 3 字符串类型
let str:string = "你好啊";

// 4 数组类型
// Array<>类型
let arr: Array<number> = [1,2,3];
// 数据类型[]
let arr2: string[] = ['1','2']

// 5undefined 跟 null
let _undefined:undefined = undefined;
let _null:null = null;

// 6 any类型不进行任何检验
let any_var:any = 123;
any_var = true;
二ts中的或与非
// 1 ts中的或
let some_var:number | string | boolean | undefined = 123;
some_var = true;
some_var = "aaa";
some_var = "undefined"
// 2 ts中的与  必须全部都要有,不然的话都不行
let person4:IB & IC & ID = {
    ib: '11',
    ic: '22',
    id: '333'
}
三 对象接口
// 1 函数里面如果是不返回数值的话,使用void 如果有返回值的话,要声明定义类型
function func(arg:number):void {

}
func(111)

// 这个boolean就是代表要返回的数据类型
function func2(arg:string):boolean {
    return false
}

// 2 对象 使用接口来定义对象的类型

/**一般命名是以I 开头*/ 
interface IPerson { 
    name: string;
    age: number;
    sex: string;
}
let obj:IPerson = {
    name: "张三",
    age: 20,
    sex: "张三"
}
let obj2:IPerson = {} //当接口里面定义的东西没有引用的时候,就会报错

// 3 设置对象可选项(加个?表示可选项)
interface IPerson2 { 
    name?: string;
    age?: number;
    sex: string;
}
//可不写name age选项
let obj3:IPerson2 = { 
    sex:'男'
}

// 4 接口继承
interface IA extends IPerson2 {
    hobby: Array<string>;
}

let person2: IA = {   
    sex: '男',
    hobby: ['hello','world']
}

// 5 继承多个
interface IB {
    ib: string
}
interface IC {
    ic: string
}
interface ID extends IB,IC {
    id: string
}
let person3:ID = {
    ib: '11',
    ic: '22',
    id: '333'
}

// 6 implements 接口实现
interface IPerson6 {
    uname: string;
    uage: number;
    usex:string;
    // 两种写法
    getName:() =>string;
    getAge ():number;
}

class Person implements IPerson6 {
    uname: string = '张三';
    uage: number = 20;
    usex:string;
    getName (): string{
        return this.uname;
    };
    getAge ():number {
        return this.uage;
    };
    // 可以书写类自己的方法
    sayHello ():void {

    }
}
// 7 当出现不确定的属性时候
interface IPerson5 {
    [propName: string] :any;
}
let person5:IPerson5 = {}

// 8 类型断言
function getLength (str: number | string):number {
    // 两种断言的方法  as  <数据类型>
    if ((str as string).length) {
        return (<string>str).length
    }else {
        return str.toString().length
    }
}
// 非空断言
function fn3 (arg?: string):number {
    return arg!.length;
    //!相当于 return arg && arg.length;
}

// 9 枚举
// let color = {
//     red: 1,
//     green: 2,
//     yellow: 3
// }
enum Color {
    red,
    green,
    yellow
}
console.log(Color.red) //0  取所有数据的索引值 默认从0开始
console.log(Color.green) //1
console.log(Color[1]) //green

// 索引可以实现自增 给枚举赋值
enum Color2 {
    red = 1,
    green, //2
    yellow //3
}

// 10 泛型
function fun4<T>(arg:T):void {

}
fun4<number>(123)
fun4<string>('abc')

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值