写点什么

关于 TypeScript 数据类型

作者:高端章鱼哥
  • 2024-05-20
    福建
  • 本文字数:1823 字

    阅读完需:约 6 分钟

关于TypeScript数据类型

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 声明

  • 1type 用于定义类型别名,使得我们可以为一个复杂类型或者一个较长的类型声明一个简短的别名。这个别名可以在任何地方使用,以代替原始的类型。

  • 2.如果多次声明同一个变量、函数或类,这些声明会被自动合并为一个声明。这种合并称为声明合并。而 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 可以实现应用从创建、配置、开发、测试到发布、运维、升级等完整生命周期的管理。减少了传统应用程序的代码编写量,通过图形化、可视化的界面,以拖放组件的方式,即可快速生成应用程序的产品,大幅降低了开发企业管理类软件的难度。

希望这篇文章对你有所帮助~

用户头像

还未添加个人签名 2023-06-19 加入

还未添加个人简介

评论

发布
暂无评论
关于TypeScript数据类型_高端章鱼哥_InfoQ写作社区