• typescript ts 基础知识之类型声明


    定义变量类型、函数参数类型、函数返回值类型

    let 变量: 类型

    let 变量: 类型 = 值

    function  fn( 参数:类型,参数:类型){ ...... }

    1. : number 数字

    2. : string 字符串

    3. :boolean 布尔值

    4. : 字面量  限制变量的值就是该字面量的值,eg:let a: 10;   a = 11会报错

    5. : any 任意类型,相当于对该变量关闭了TS类型检测,不建议使用

    1. let e
    2. e = 'hello' // 可以
    3. let s: string
    4. s = e // 可以

    6. : unknown 类型安全的any,不能直接赋值给其他变量

    1. let e:unknown
    2. e = true // 可以
    3. e = 'hello' // 可以
    4. let s: string
    5. s = e //报错
    6. //解决
    7. if(typeof e === 'string'){ s = e }
    8. s = e as string //类型断言,用来告诉解析器变量的实际类型 s = <string>e

    7. : void 空值 没有值(或undefined)常用来设置函数的返回值

    8. : never 不能是任何值,永远不会返回结果(throw new Error('报错了'))

    9. : object 任意js对象,此种形式不常用,常用以下方式

    1. // {}用来指定对象中包含哪些属性,语法:{属性名:属性值类型,属性名:属性值类型,... }
    2. // 在属性名后边加?,表示属性是可选的
    3. let b: {name: string, age?: number}
    4. b = {name: 'tom', age: 18} //可以
    5. b = {name: 'jack'} //可以
    6. // [propName: string]: any 表示任意类型的属性
    7. let c: {name: string, [propName: string]: any}
    8. c = {name: 'may', age: 12, gender: '女'} //可以
    9. //设置函数结构的类型声明,语法:(形参:类型,形参:类型,...) => 返回值
    10. let d: (a:number, b:number) => number
    11. d = function(n1:string, n2: string): number{ return 10 } //报错,参数类型错误

    10. : array 任意js数组,常用方式:类型[],Array<类型>

    1. let e: string[]
    2. let f: Array<number>

    11. : tuple 元组,TS新增类型,固定长度数组,语法:[类型,类型,类型,... ]

    1. let h: [string, string]
    2. h = ['hello', 123] // 报错,类型错误
    3. h = ['hello', 'world', '你好'] //报错,个数多了

    12. : enum 枚举,TS新增类型,将可能的情况列举出来

    1. enum Gender{
    2. Male = 0,
    3. Female = 1
    4. }
    5. let i: {name: string, gender: Gender}
    6. i = {
    7. name: 'hi',
    8. gender: Gender.Male, //数据库中会将gender值存为0
    9. }
    10. console.log(i.gender === Gender.Male)

    注:

    a. 如果变量的声明和赋值是同时进行的,TS可以自动对变量进行类型检测,可以省略类型声明

    b. 可以使用 | (或)来链接多个类型(联合类型),结合字面量,可以将变量限制在某几个值之间

    c. 声明变量时不指定类型,则TS解析器自动判断变量类型为any,若不知类型可使用unknown类型

    d. &表示同时,let j: {name: string} & {age: number},j同时满足含有name和age属性

    e. 类型别名 type

    1. type myType = 1|2|3|4|5
    2. let k: myType
    3. let l: myType

  • 相关阅读:
    《Python+Kivy(App开发)从入门到实践》自学笔记:高级UX部件——知识点总览
    基于画布的手绘风格图形库 Rough.js
    完全保密的以太坊交易:Aztec网络的隐私架构
    Java21的新特性
    2万字带你从0到1搭建一套企业级微服务安全框架
    用户请求经过哪些处理(公网)
    使用Visual Studio Code 进行Python编程(三)
    支付宝支付接口的调用
    JAVA-中国矿业大学作业-编写程序,将字符串“你好,欢迎来到JAVA世界”对其中的“java“进行截取,输出截取字母和它在字符串中的位置
    中文写代码?开始不信后来用中文写了剧情小游戏!嗯,真香~
  • 原文地址:https://blog.csdn.net/weixin_59128282/article/details/125624414