typesctipt1


typesctipt

基础静态类型和对象静态类型

// 基础静态类型
let myage: number = 24  // 此为类型注解
let myname: string = 'fly'

// 对象静态类型    以下都是
const xiaojiejie1: { // 定义类型
  name: string,
  age: number,
  sex: string
} = {  // 赋值
  name: '慕容兰洛',
  age: 18,
  sex: '女'
}

// 不为字符串数组,就会报错
const xiaojiejies: string[] = ['洛璃', '应欢欢', '绫清竹']

console.log('xiaojiejies', xiaojiejies);

class Person { }
const ren: Person = new Person()

// 若返回值不是字符串,就会报错
const nihaoxiaojiejie: () => string = () => { return '洛璃' }

console.log('nihaoxiaojiejie', nihaoxiaojiejie);
类型注解和类型推断

const one = 1
const two = 2
const three = one + two  // ts 会自动推断类型 ** 类型推断  : const three: number

/*
*
* 如果ts能自动推断类型,就什么都不需要做了 (不为any时)
&
* 如果ts无法分析变量类型的话,我们就需要使用类型注解
*/ 

// 函数参数和返回类型的注解

// 这种推断是有问题的
// function jisuan(a: number, b: number) {
//  return a + b + '' // 若这里不小心加上了'', 就出了 问题, 返回值的类型推断就不对了
// }

// let results = jisuan(1, 2) // 

// console.log(results);
函数参数和返回值的注解
// 1
//  直接给返回值定义类型,若返回值有问题,下面的语句会直接报错
 function jisuan(a: number, b: number): number {
   return a + b
 }
 let result = jisuan(1, 2)


// 2 void 没有返回值

function test1(): void {
  console.log('22222')
}

// 3 never 永远执行不完,一般是在抛出异常的时候

function errorFunction(): never {
  throw new Error()
  console.log('出错了') // 无法访问的代码
}

//  死循环也用never
function forNever(): never {
  while (true) { }
  console.log('出错了') // 无法访问的代码
}

// 为对象类型内部指定参数类型

function getNumber({ one, two }: { one: number, two: number }) {
  return one + two
}

let res1 = getNumber({ one: 100, two: 20 })

文章作者: KarlFranz
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 reprint policy. If reproduced, please indicate source KarlFranz !
评论
  目录