前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TypeScript入门第一天,所有类型+基础用法+接口使用

TypeScript入门第一天,所有类型+基础用法+接口使用

作者头像
玖柒的小窝
修改2021-09-30 11:13:04
6410
修改2021-09-30 11:13:04
举报
文章被收录于专栏:各类技术文章~

、基础类型和基础用法

数据类型

关键字

描述及用法

任意类型

any

声明为 any 的变量可以赋予任意类型的值。let notSure: any = 4;notSure = "小陈";//数字变字符串不会报错

数字类型

number

它可以用来表示整数和分数。和JavaScript一样,TypeScript里的所有数字都是浮点数。支持十进制、十六进制、二进制、八进制字面量。let decLiteral: number = 6; // 十进制

字符串类型

string

表示字符串,使用单引号(')或双引号(")来表示字符串类型。反引号(`)来定义多行文本以及用${}内嵌表达式。let name: string = "小陈";let words: string = `您好${ name }`;

布尔类型

boolean

表示逻辑值:true 和 false。在JavaScript和TypeScript里叫做boolean

数组类型

声明变量为数组。// 在元素类型后面加上[]let arr: number[] = [1, 2];// 或者使用数组泛型,Array<元素类型>let arr: Array<number> = [1, 2];

元组(Tuple)

元组类型用来表示已知元素数量和类型的数组,各元素的类型不必相同,对应位置的类型需要相同。let x: [string, number];x = ['小陈', 1]; // 运行正常x = [1, '小陈']; // 报错console.log(x[0]); // 输出 小陈x[3] = 'world'; // 越界的元素会使用联合类型替代,可以赋值给(string | number)类型

枚举

enum

枚举类型用于定义数值集合,可以为一组数值赋予友好的名字。enum Color {Red, Green, Blue};let c: Color = Color.Blue;console.log(c); // 输出 2let cName: string = Color[2];console.log(cName); // 输出 Blue

void

void

用于标识方法返回值的类型,表示该方法没有返回值。声明一个void类型的变量没什么用,你只能为它赋予undefined和null:function hello(): void {    alert("Hello");}//当一个函数没有返回值时,你通常会见到其返回值类型是 void

null

null

表示对象值缺失。

undefined

undefined

用于初始化变量为一个未定义的值

never

never

never 是其它类型(包括 null 和 undefined)的子类型,代表从不会出现的值。

这里有个细节就是变量声明 :

const是对let的一个增强,它能阻止对一个变量再次赋值。如果在同一作用域内重复声明某个变量或常量就会报错,所有typescript内推荐使用它们来代替 var。

二、类型断言

类型断言可以用来手动指定一个值的类型。

语法:<类型>值    或    值 as 类型

代码语言:javascript
复制
var str = '1'   //数字或者所有类型都可以
var str2:number = <number> <any> str   //str、str2 是 string 类型
console.log(str2)   //用完断言打印数字1

注意:断言不被称为类型转换,是因为转换通常意味着某种运行时的支持。但是,类型断言纯粹是一个编译时语法 。

三、typescript接口

TypeScript的核心原则之一是对值所具有的结构进行类型检查,接口是一系列抽象方法的声明,是一些方法特征的集合,这些方法都应该是抽象的,需要由具体的类去实现,然后第三方就可以通过这组抽象方法调用,让具体的类执行具体的方法。

1.我们通过实例介绍:(interface关键字定义接口)

代码语言:javascript
复制
interface A { //定义了一个接口 A
    Name:string, 
    age:number, 
    sayHi: ()=>string 
} 
 
var customer:IPerson = { 
    Name:"小陈",
    age:21, 
    sayHi: ():string =>{return "Hi"} 
} 
 
console.log("Customer 对象 ") 
console.log(customer.Name)    //小陈
console.log(customer.age)    //21 
console.log(customer.sayHi()) //Hi

 2.可选属性

可选属性的好处之一是可以对可能存在的属性进行预定义,好处之二是可以捕获引用了不存在的属性时的错误。只需在可选属性名字定义的后面加个?

代码语言:javascript
复制
interface SquareConfig {
  color?: string;
  width?: number;
}   //函数传入的参数对象中只有部分属性赋值了,这里只给接口来定义的color赋值了     
function createSquare(config: SquareConfig): { color: string; area: number } {
  if (config.clor) {
    // Error: Property 'clor' does not exist on type 'SquareConfig'
    newSquare.color = config.clor;
  }
}

3.只读属性

属性名前用 readonly来指定只读属性:

代码语言:javascript
复制
interface A {
    readonly x: number;
    readonly y: number;
}
//赋值后, x和y再也不能被改变了。
let p: A = { x: 10, y: 20 };
p.x = 5; // error!

TypeScript具有ReadonlyArray<T>类型,可以确保数组创建后再也不能被修改

代码语言:javascript
复制
let A: number[] = [1, 2, 3, 4];
let B: ReadonlyArray<number> = A;
B[0] = 8; // error!
A = B; // error!赋值也不可以

//想赋值的话可以用类型断言重写
A = B as number[];

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 、基础类型和基础用法
  • 二、类型断言
  • 三、typescript接口
    • 1.我们通过实例介绍:(interface关键字定义接口)
      •  2.可选属性
        • 3.只读属性
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档