当前位置: 首页 > wzjs >正文

苍梧县网站建设搜索引擎推广的简称是

苍梧县网站建设,搜索引擎推广的简称是,小程序报价单模板,视频号最新动作标题详情作者简介愚公搬代码头衔华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主&…
标题详情
作者简介愚公搬代码
头衔华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。
近期荣誉2022年度博客之星TOP2,2023年度博客之星TOP2,2022年华为云十佳博主,2023年华为云十佳博主,2024年华为云十佳博主等。
博客内容.NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。
欢迎👍点赞、✍评论、⭐收藏

文章目录

  • 🚀前言
  • 🚀一、TypeScript 类型系统详解
    • 🔎1.基础类型定义
    • 🔎2.任意值(Any)
    • 🔎3.联合类型
    • 🔎4.数组类型定义
      • 🦋4.1 类型 + 方括号
      • 🦋4.2 泛型数组(`Array<T>`)
      • 🦋4.3 任意类型数组
    • 🔎5.对象的类型——接口(Interfaces)
      • 🦋5.1 基本接口
      • 🦋5.2 可选属性
      • 🦋5.3 任意属性
    • 🔎6.函数的类型定义
      • 🦋6.1 基础函数类型
      • 🦋6.2 参数默认值
      • 🦋6.3 可选参数
      • 🦋6.4 类型别名
    • 🔎7.总结


🚀前言

🚀一、TypeScript 类型系统详解

🔎1.基础类型定义

语法格式:变量名: 类型 = 值

类型示例说明
布尔类型let flag: boolean = false;仅接受 true/false
数值类型let num: number = 15;支持整数、浮点数、二进制等
字符串类型let str: string = "abc";支持单引号、双引号、模板字符串
模板字符串let msg = `hello, ${str}, ${num}`;使用反引号拼接变量
null/undefinedlet u: undefined = undefined;
let n: null = null;
需显式声明类型
let flag:boolean = false; //布尔类型
let num:number = 15; //数值类型
let str:string = 'abc'; //字符串类型
let str2:string=`hello,${str}`;
let msg:string = `hello,${str},${num}`;
let u: undefined = undefined;
let n: null = null;

🔎2.任意值(Any)

特点:允许赋值为任意类型,关闭类型检查。

let a1: string = 'seven';
a1 = 7;//error
但如果是 any 类型,则允许被赋值为任意类型。
let a2: any = 'seven';
a2 = 7;
变量如果在声明的时候,未指定其类型,那么它会被识别为任意值类型
let a3;
a3 = 'seven';
a3 = 7;
相当于
let a3:any;
a3 = 'seven';
a3 = 7;

注意事项:滥用 any 会丧失类型安全,应谨慎使用。

🔎3.联合类型

定义:变量可以是多种类型中的一种,用 | 分隔。

let a4: string | number;
a4 = "seven"; // 合法
a4 = 7;       // 合法
a4 = true;    // 报错:不能赋值给联合类型

联合类型的限制
只能访问共有属性或方法:

function getLength(str: string | number): number {return str.length; // 报错:number 没有 length 属性
}

解决方法:类型断言或类型保护。

// 类型断言(明确告知类型)
function getLength(str: string | number[]): number {return (str as number[]).length; // 断言为数组
}// 类型保护(运行时检查)
function getLength(str: string | number[]): number {if (Array.isArray(str)) {return str.length; // 合法}return str.length;   // 报错:number 没有 length
}

🔎4.数组类型定义

🦋4.1 类型 + 方括号

let arr: number[] = [1, 2, 3]; // 仅允许数值
let arrError: number[] = [1, "2", 3]; // 报错:包含字符串

🦋4.2 泛型数组(Array<T>

let arrGeneric: Array<number> = [1, 2, 3];
let arrMultiType: Array<number | string> = ["1", 2, 3];

泛型优势:支持更灵活的类型组合,适用于复杂数据结构。

🦋4.3 任意类型数组

let arrAny: any[] = [1, "1", true, { id: 1 }]; // 允许任意类型

🔎5.对象的类型——接口(Interfaces)

🦋5.1 基本接口

interface Person {name: string;age: number;
}let tom: Person = { name: "Tom", age: 18 
}; // 合法let tomError: Person = { name: "Tom" 
}; // 报错:缺少 age 属性

🦋5.2 可选属性

interface Person2 {name: string;age?: number; // 可选属性
}let tom4: Person2 = { name: "Tom" 
}; // 合法

🦋5.3 任意属性

interface Person3 {name: string;age?: number;[propName: string]: any; // 允许任意额外属性
}let tom6: Person3 = { name: "Tom", sex: "男" 
}; // 合法

关键规则:
一旦定义任意属性,其他属性的类型必须是其子类型。
例如,若 [propName: string]: string,则 age: number 会报错。

🔎6.函数的类型定义

🦋6.1 基础函数类型

function sum(x: number, y: number): number {return x + y;
}

🦋6.2 参数默认值

function sum3(x: number = 5, y: number): number {return x + y;
}sum3(undefined, 2); // x 使用默认值 5

注意:默认参数应放在参数列表末尾,否则需显式传 undefined

🦋6.3 可选参数

function sum4(x: number, y?: number): number[] {return [x, y];
}sum4(1); // 返回 [1, undefined]

规则:可选参数必须位于必选参数之后。

🦋6.4 类型别名

function myHello(person: n) {return 'Hello, ' + person;
};
type n = number;
let name:n = 18;
console.log(myHello(name));

🔎7.总结

特性核心要点
类型注解明确变量类型,增强代码可读性和安全性。
联合类型通过 `
泛型数组使用 Array<T> 提高灵活性,适用于复杂数据。
接口约束对象形状,支持可选属性和任意属性,需注意类型兼容性。
函数类型参数类型、返回值类型、可选参数和默认值的组合使用。

避坑指南:

  1. 联合类型方法调用:确保访问的属性是所有类型的共有属性。
  2. 接口任意属性:定义后,其他属性必须兼容任意属性的类型。
  3. 函数默认参数:默认参数应放在参数列表末尾,避免调用时歧义。

文章转载自:

http://21DwueXw.rLtmn.cn
http://6P9z2Nnv.rLtmn.cn
http://BjtYyCrc.rLtmn.cn
http://fjcwrZuo.rLtmn.cn
http://3zMazb44.rLtmn.cn
http://6JA8huGl.rLtmn.cn
http://J6UE3zaE.rLtmn.cn
http://Zlk6zP8I.rLtmn.cn
http://KnUyFxJH.rLtmn.cn
http://LWGwiaV4.rLtmn.cn
http://Cz985Ftm.rLtmn.cn
http://lCi3Qtzu.rLtmn.cn
http://HB5r6AnG.rLtmn.cn
http://kipLG4BS.rLtmn.cn
http://jKw5E4zl.rLtmn.cn
http://c3S3Ms6M.rLtmn.cn
http://TugCpC2q.rLtmn.cn
http://s0CUhRY0.rLtmn.cn
http://lecoNfKa.rLtmn.cn
http://ta9dGgPC.rLtmn.cn
http://wgCKxODM.rLtmn.cn
http://BMswIyIE.rLtmn.cn
http://JiUZPY5e.rLtmn.cn
http://w2F4sqd8.rLtmn.cn
http://Stvj5dqm.rLtmn.cn
http://fMvy9Z1c.rLtmn.cn
http://QKMdiUKS.rLtmn.cn
http://HA1tuqm3.rLtmn.cn
http://piE0aYVL.rLtmn.cn
http://ZRIcqxHj.rLtmn.cn
http://www.dtcms.com/wzjs/696924.html

相关文章:

  • 商城顺德网站建设北京市建设工程
  • 医院网站建设多少钱为什么建设银行网站
  • 武昌做网站中国建设网网站
  • 做网站必须要推广吗国外网站赏析
  • 中国空间站实时位置wordpress询盘功能
  • 汕头seo网站建设湖南企业建网站公司
  • 创建公司网站需要准备哪些素材小程序商城需要icp许可证吗
  • 广西网站建设-好发信息网wordpress a
  • 网站维护什么情况o2o网站建设要多少钱
  • 山东省建设局注册中心网站wordpress怎么引用single
  • 微信官方网站开发天水模板型网站建设
  • 万网如何建设网站阳江房价
  • 建设收费网站网站幻灯片尺寸设置
  • c语言除了做网站还能干什么网站建设与管理就业去向
  • nginx 网站正在建设中茂名网站建设服务
  • 网站推广如何指定关键词优化网站做收付款接口
  • 网站建设数据中心kn95口罩
  • 东莞商城网站建设价格软件专业
  • 建设网站需要营业执照吗百度小程序如何做网站
  • 小说网站开发的看书软件网站建设电销话术范文
  • 国人在线做网站怎么样成都网站登记备案查询
  • 游网站建设方案内容网站建设一六八互联
  • 个人做分类信息网站响应式网站 价格
  • 三里河网站建设网站开发方案服装网站简介
  • 建立公司网站的流程山东省临沂建设局网站
  • 快速提升网站关键词排名wordpress速度很慢
  • 网站模板库wordpress一键分享代码
  • 贵州住房与城乡建设部网站公司备案网站被注销吗
  • 用ps做企业网站分辨率是多少钱陶瓷网站制作
  • 前端网站论文北京企业网站开发