TypeScript 数据类型
基础数据类型
number、string、boolean、 null 和 undefined、object
//1.基础类型使用
// number:表示数值类型,例如:let age: number = 25;
// string:表示字符串类型,例如:let name: string = "John";
// boolean:表示布尔类型,例如:let isReady: boolean = true;
// null 和 undefined:表示空值类型,例如:let data: null = null;
// object:表示对象类型,例如:let person: object = { name: "John", age: 25 };\
export{}
let n:number=18;
let str:string="张三";
let b:boolean=true;
let arr:number[]=[1,2,3];
let arr2:Array<number>=[1,2,3];
let data:undefined=undefined;
let data2:null=null;
let data3:object={name:"张三",age:18};
复制代码
其他数据类型
元组 []
类似数组。数组只能是一种数据类型,元组多个数据类型。但元组长度不能太长,不然不好理解。
//元组
let tuple:[number,string]=[18,"cts"];
复制代码
枚举 enum
enum Color{Red,Yellow,Blue};
复制代码
接口 interface
定义一组 属性(可以是数据类型或方法),不需要实现。可重复定义相同名称的接口,重名后将合并属性。
//接口
interface IPerson {
readonly id: number;
name: string,
age: number,
color: Color;
address?:string,
[propName: string]: any;//可以添加任意属性
}
let tom: IPerson = {
id:1,
name: 'Tom',
age:12,
gender2:'male',
color:Color.Red
};
console.log(tom.age);
复制代码
联合类型 |
类型可选择
let union:string|number;
union=18;
union="cts";
复制代码
交叉类型 &
将多个类型合并成一个新的类型
interface IPrintable {
print(str:string): void;
}
interface ILoggable {
isLog?:boolean;
log(): void;
}
let c:IPrintable & ILoggable={
print(str:string){
console.log("Printable")
},
log(){
console.log("Loggable")
}
};
c.print("你好呀");
复制代码
type 声明
type MyString = string;
type Point = { x: number; y: number };
type Callback = (data: any) => void;
let myStr:MyString="123";
type Person2 = {
name: string;
}
type User2 = {
age: number;
}
let person: Person2 & User2;
person = {
name: 'Echo',
age: 26,
}
复制代码
面向对象
类 class
//定义类
class Person{
name:string;
age:number;
address?:string;//?可为空
[propName: string]: any;//可以添加任意属性
constructor(name:string,age:number){
this.name=name;
this.age=age;
}
sayHello():void{
console.log(`name:${this.name},age:${this.age}`);
}
}
//类实例
let user:Person=new Person('rose',18);
user.sayHello();
复制代码
继承 extends
class Teacher extends Person{
sayHello():void{
console.log( `Teacher,name:${this.name},age:${this.age}`);
}
}
let user2:Person=new Teacher('jack',18);
user2.sayHello();
复制代码
其他
类型推断
不添加变量或常量数据类型。
let num = 123; // 推断为 number 类型
console.log(num.toFixed(2)); // 输出:123.00
复制代码
类型断言 as
将数据类型转换,常用 any 数据转换
let someValue: any = "this is a string";
let strLength: number = (someValue as string).length;
console.log(strLength); // 输出:16
复制代码
总结
类型是 TS 中最重要的部分,因为 TS 的诞生主要就是解决 JS 弱类型的问题,增加了代码的可读性和可维护性。
最后
前端的世界总是在不断变化,作为开发者,我们需要保持好奇心和学习热情,不断探索新的技术,只有这样,我们才能在这个快速发展的时代中立于不败之地。
介绍一款程序员都应该知道的软件JNPF快速开发平台,很多人都尝试用过它,它是功能的集大成者,任何信息化系统都可以基于它开发出来。
JNPF 可以实现应用从创建、配置、开发、测试到发布、运维、升级等完整生命周期的管理。减少了传统应用程序的代码编写量,通过图形化、可视化的界面,以拖放组件的方式,即可快速生成应用程序的产品,大幅降低了开发企业管理类软件的难度。
希望这篇文章对你有所帮助~
评论