TypeScript数据类型(二)

TypeScript增加了类型检测,较JavaScript有以下几点优势:1、在编译时就能发现潜在错误问题并提示,而非在运行时,增加了更好的错误处理;2、在编写时代码提示更友好,提示类型对应的属性和方法;3、代码语义更清晰,类型就是最好的注释。

基础类型:number、string、boolean、null、undefined、void、symbol

// 当声明和赋值在两行时,需要使用类型注解,明确变量类型
let count: number;
count = 123;

// 当声明和赋值在一行时,无需使用类型注解,TypeScript自动进行类型推断,分析变量类型
const num = 123;

对象类型:{}、class、function、[]

// 对象类型
interface Teacher {
  name: string;
  age: number;
}

const teacher: Teacher = { name: 'Brady', age: 18 };

// 函数类型:两种写法
const func = (str: string) => {
  return parseInt(str, 10);
};

// 类类型:
class Person {}
const brady: Person = new Person();

const func1: (str: string) => number = str => {
  return parseInt(str, 10);
};

// 数组类型
const numberArr: number[] = [1, 2, 3];
const arr: (number | string)[] = [1, '2', 3];

// 类型别名
type User = { name: string, age: number };
const userArr: User[] = [
  { name: 'Brady', age: 18 }
]

// 元组类型:数组中类型固定、长度固定
const tupleArr: [string, string, number] = ['Brady', 'male', 18];
// csv格式类型注解
const teacherList: [string, string, number][] = [
  ['Brady', 'male', 18],
  ['Lucy', 'female', 16],
  ['Jack', 'male', 20]
];

其他类型:Date、复合类型、never

const date = new Date(); // Date类型

interface Person {
  name: string; 
}
const rawData = '{"name": "Brady"}';
const newData: Person = JSON.parse(rawData);

let temp: number | string = 123;
temp = '456';

const error = (): never => {
  throw new Error();
  console.log('123');
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值