ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

typescript

2022-09-09 17:30:11  阅读:237  来源: 互联网

标签:typescript const string number 类型 null name


基础类型

Boolean

number

string

null

undefined

any

void

never

object type

  • object{} 对象类型
let obj33:{name:string,age:number}={
    name:'11',
    age:11    
}

*array[] 数组类型

const list: number[] = [12, 23, 34]
//泛型
const listA: Array<number> = [1, 2, 3]
  • class 类型
class Person {}
const LinYY: Person  = new Person()
  • fn() 类型
const getNumber: () => number = () => {
    // return 'LinYY'   报错
    return 123
}

// 要求返回值是string 字符类型
const getString: () => string = () => {
    return 'LinYY'
    // return 123
}

interface 自定义类型

//interface
interface Point {
    x: number,
    y: string
}
const point: Point ={
    x:123,
    y:'123'
}

type alias 类型别名 不是ts的基本数据类型,常用于提取公共类型

type User = { name: string, age: number }
let male: User = {name: 'LinYY', age: 18}
let famale: User = {name: 'nana', age: 18}

数组和元组

数组的类型注解

  • 类型[] Array<类型>
//对象数组
const objarr:{name:string,age:number}[]=[{
    name:'123',
    age:12    
}
  • 对于复杂的对象数组,可以采用类型别名type alias

typescript断言

类型断言

  • ‘尖括号’语法
let someValue:any = 'this is a string';
let str22:number=(<string>someValue).length;

// as 语法
let str33:number=(someValue as string).length;

非空断言

  • 在上下文中当类型检查器无法断定类型时,一个新的后缀表达式操作符!可以用于断言操作对象是非null和非undefined类型。
  • 即将x从类型null和undefined中排除

忽略undefined和null类型

function my(mystr: string | undefined | null) {
    // const str:string=mystr;
    const str2:string=mystr!;
}

调用函数时忽略undefined

type Num=()=>number;
function fn(num:Num|null){
    const num1=num();//error
    const num2=num!();
}

确定赋值断言

类型守卫

联合类型

  • 联合守通常与null和undefined一起用

TS中的this TS是JS的超集 this指向相同

标签:typescript,const,string,number,类型,null,name
来源: https://www.cnblogs.com/Goodnighter/p/16673522.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有