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');
};
还没有评论,来说两句吧...