关于javascript:typescript初步学习

申明变量要加上变量类型

  • 因为js对申明变量太过于凋谢,在申明之后能够从新赋值为别的数据类型,在不便实用的同时,可能会对当前造成更大的问题
let nextIndex:number = 999;
let isClose:boolean = false;
  • 若申明变量时不加变量类型会主动对变量类型进行检测

    let index = 123;
    index = true; // 报错

变量类型

string 字符串

let a: string = 'hello'

number 数字

let a: number = 100

boolean 布尔值

let a: boolean = false

any 不指定类型,相当于js,敞开了ts的类型检测

let a: any
a = 10
a = true
a = 'hello'

若是不写类型,默认any

// any类型能够赋值给任意类型变量
let a;
a = 10
a = true
a = 'hello'

unknown 未知变量 不能够间接赋值给其余类型变量

let a: unknown
a = 10
a = true
a = 'hello'

let b:string = 'today'
b = a // 报错
if(typeof a === 'string') {b = a}

// 或者类型断言,两个格局都行

b = a as string;
b = <string>a;

void 示意为空

function fn():void{
  return;
  return true; // 报错
}

{}能够用来示意对象里蕴含哪些属性 属性名后加上?示意该属性可选填

// let a :{name:string, age?:number}
// a = { name: 'tangyujing' }

// [propName:string]:any 能够示意任意类型的属性

let a: { name: string, [propName: string]: any }
a = { name: 'tangyujing', age: 25, gender: '男' }

function 函数类型

// 设置函数构造类型: (a:参数类型,b:参数类型)=>返回值类型
let a: (a: number, b: number) => number
a = function (n1, n2) {
  return n1 + n2
}
a = (n3, n4) => { return 10 }

array 数组类型

// 设置数组构造类型: 类型[] 或者 Array<类型>
let a: string[]
a = ['a', 'b', 'c']
let b: Array<number>
b = [1, 2, 3]

tuple 元组:限度长度的数组

let a: [string, number, number]
a = ['a', 1, 2]

enum 枚举

enum Gender {
  Male, Female
}
let a: { name: string, gender: Gender }
a = { name: 'tyj', gender: Gender.Male }

不反对隐式转换

ts:
console.log(2 - '1'); // 报错
console.log(2 + '1'*1); // 报错
console.log(2 - '1'/1); // 报错


js:
console.log(2 - '1'); // 1
console.log(2 + '1'* 1); // 3
console.log(2 + '1'/1); // 3

反对++number进行 string => number

console.log(2 - +'1'); // 1

字符串前加+号,能够将string转化成number,仅针对字符串内容为纯数字

string没有length属性

let gender:string = '性别男'
console.log(gender.length); // 不执行

数组创立&基本操作

let arrays:string[] = ['aaa','bbb','ccc']
console.log(arrays); // ['aaa','bbb','ccc']
// 获取
console.log(arrays[1]); // bbb
// 批改
arrays[0] = 'ddd'
console.log(arrays); // ['ddd', 'bbb', 'ccc']
// 增加
arrays[arrays.length] = 'eee'
console.log(arrays); // ['ddd', 'bbb', 'ccc', 'eee']

函数的参数和返回值也能够定义数据类型

function sum(a: number, b: number): number {
  return a + b
}

能够应用字面量间接申明

let a: 10
a = 10
a = 20 // 报错

能够应用 | 来连贯多个类型(联合声明)

let b: 'name' | 'age'
b = 'name'
b = 'age'

let c: number | boolean
c = false
c = 100

&示意同时相似于

let a: { name: string } & { age: number }
a = { name: 'tyj', age: 25 }

类型的变量 类型较长较为简单时应用

type Gender = 'male' | 'female' | number
let a: Gender;
a = 'male'
a = 0

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理