TS常用的类型

// 也可以直接使用字面量进行类型声明
let a: 10;
a = 10;// 可以使用 | 来连接多个类型(联合类型)
let b: "male" | "female";
b = "male";
b = "female";let c: boolean | string;
c = true;
c = 'hello';// any 表示的是任意类型,一个变量设置类型为any后相当于对该变量关闭了TS的类型检测
// 使用TS时,不建议使用any类型
// let d: any;// 声明变量如果不指定类型,则TS解析器会自动判断变量的类型为any (隐式的any)
let d;
d = 10;
d = 'hello';
d = true;// unknown 表示未知类型的值
let e: unknown;
e = 10;
e = "hello";
e = true;let s:string;// d的类型是any,它可以赋值给任意变量
// s = d;e = 'hello';// unknown 实际上就是一个类型安全的any
// unknown类型的变量,不能直接赋值给其他变量
if(typeof e === "string"){s = e;
}// 类型断言,可以用来告诉解析器变量的实际类型
/*
* 语法:
*   变量 as 类型
*   <类型>变量
*
* */
s = e as string;
s = <string>e;// void 用来表示空,以函数为例,就表示没有返回值的函数
function fn(): void{
}// never 表示永远不会返回结果
function fn2(): never{throw new Error('报错了!');
}
// object表示一个js对象
let a: object;
a = {};
a = function () {
};// {} 用来指定对象中可以包含哪些属性
// 语法:{属性名:属性值,属性名:属性值}
// 在属性名后边加上?,表示属性是可选的
let b: {name: string, age?: number};
b = {name: '孙悟空', age: 18};// [propName: string]: any 表示任意类型的属性
let c: {name: string, [propName: string]: any};
c = {name: '猪八戒', age: 18, gender: '男'};/*
*   设置函数结构的类型声明:
*       语法:(形参:类型, 形参:类型 ...) => 返回值
* */
let d: (a: number ,b: number)=>number;
// d = function (n1: string, n2: string): number{
//     return 10;
// }/*
*   数组的类型声明:
*       类型[]
*       Array<类型>
* */
// string[] 表示字符串数组
let e: string[];
e = ['a', 'b', 'c'];// number[] 表示数值数值
let f: number[];let g: Array<number>;
g = [1, 2, 3];/*
*   元组,元组就是固定长度的数组
*       语法:[类型, 类型, 类型]
* */
let h: [string, number];
h = ['hello', 123];/*
* enum 枚举
*
* */
enum Gender{Male,Female
}let i: {name: string, gender: Gender};
i = {name: '孙悟空',gender: Gender.Male // 'male'
}// console.log(i.gender === Gender.Male);
// &表示同时
let j: { name: string } & { age: number };
// j = {name: '孙悟空', age: 18};// 类型的别名
type myType = 1 | 2 | 3 | 4 | 5;
let k: myType;
let l: myType;
let m: myType;k = 2;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/325439.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

6 道 BATJ 必考的 Java 面试题

转载自 6 道 BATJ 必考的 Java 面试题 题目一 请对比 Exception 和 Error&#xff0c;另外&#xff0c;运行时异常与一般异常有什么区别&#xff1f; 考点分析&#xff1a; 分析 Exception 和 Error 的区别&#xff0c;是从概念角度考察了 Java 处理机制。总的来说&#…

终于知道什么情况下需要实现.NET Core中的IOptions接口

自从接触 IOptions 之后&#xff0c;一直纠结这样的问题&#xff1a;自己定义的 Options 要不要实现 IOptions 接口。 微软有的项目中实现了&#xff0c;比如 Caching 中的 MemoryCacheOptions &#xff1a; public class MemoryCacheOptions : IOptions<MemoryCacheOptio…

有5家衣服专卖店,每家最多购买3件,用户可以选择离开,可以买衣服,最后打印总共买了几件衣服

//有5家衣服专卖店&#xff0c;每家最多购买3件。//用户可以选择离开&#xff0c;可以买衣服。//最后打印总共买了几件衣服 public static void test4(){int count 0;Scanner sc new Scanner(System.in);String an "";//用户没说话&#xff0c;y&#xff0c;买。n…

TS对象中的实例属性和静态属性

// 使用class关键字来定义一个类 /* * 对象中主要包含了两个部分&#xff1a; * 属性 * 方法 * */ class Person{/** 直接定义的属性是实例属性&#xff0c;需要通过对象的实例去访问&#xff1a;* const per new Person();* per.name** 使用st…

Spring开启注解AOP的支持放置的位置

放在springmvc的aop,需要在springmvc的配置文件中写开启aop,而不是spring的配置文件 最近使用aop来记录controller的日志. 但是发现没有起作用. 后来发现是因为我的 aop 是写在controller层(在springmvc的容器中 -web中) 而开启aop配置却写在spring(applicationContext.xml)中…

Amazing ASP.NET Core 2.0

前言 ASP.NET Core 的变化和发展速度是飞快的&#xff0c;当你发现你还没有掌握 ASP.NET Core 1.0 的时候&#xff0c; 2.0 已经快要发布了&#xff0c;目前 2.0 处于 Preview 1 版本&#xff0c;意味着功能已经基本确定&#xff0c;还没有学习过 ASP.NET Core 的同学可以直接…

Myeclipse编辑器简单使用整理

1.重置工作面板&#xff1a; window–>Reset Perspective 2.保存工作面板&#xff1a; window–>Save Perspective 3.切换工作区间&#xff1a; file–>Switch Workspace–>other–>Browse–>选择需要切换到的目录下–》软件自动重启完即可。 4.在myeclipse中…

Java面试常问计算机网络问题

转载自 Java面试常问计算机网络问题 一、GET 和 POST 的区别 GET请注意&#xff0c;查询字符串&#xff08;名称/值对&#xff09;是在 GET 请求的 URL 中发送的&#xff1a;/test/demo_form.asp?name1value1&name2value2 GET 请求可被缓存 GET 请求保留在浏览器历史…

使用DocFX生成文档

文档生成工具DocFX&#xff0c; 类似JSDoc或Sphinx&#xff0c;可以从源代码中提取注释生成文档之外&#xff0c;而且还有语法支持你加入其他的文件链接到API添加额外的说明&#xff0c;DocFX会扫描你的源代码和附加的文件为你生成一个完整的HTML模版网站&#xff0c;你可以自己…

如何在一分钟内搞定面试官

转载自 如何在一分钟内搞定面试官 很多人的求职面试的过程中都会遇到这个问题&#xff1a; “请做个自我介绍。” 有的人&#xff0c;可以口若悬河、妙语连珠讲3分钟&#xff0c;有的人&#xff0c;可能磕磕巴巴&#xff0c;讲了30秒&#xff0c;前者一定能胜过后者&#x…

数组遍历VS对象遍历

数组遍历 const nameArray2 [zhao, qian, zhang, sun, li]; nameArray2.map(() > {}); // return const filterResult nameArray2.filter((value) > {return value zhang; }); // return array nameArray2.forEach(() > {}); // no return对象遍历 Object.keys(o…

logback-spring.xml配置文件

logback-spring.xml配置文件 自己改下value"G:/logs/pmp"这个值&#xff0c;如果你相关依赖弄好的话&#xff0c;直接复制粘贴即用 输出的日志文件的名称最好也改下&#xff0c;下文中${log.path}/web_info.log是因为我这个模块就叫web&#xff0c;要改的话&#x…

基于ZKWeb + Angular 4.0的开源管理后台Demo

这是一套基于ZKWeb网页框架和Angular 4.0编写的开源管理后台Demo&#xff0c;实现了前后端分离和模块化开发&#xff0c; 地址是: https://github.com/zkweb-framework/ZKWeb.MVVMDemo &#xff0c;开源协议是MIT&#xff0c;你可以随意的修改并用于个人或商业用途 我之前已经…

祝我们的所有女孩子,女生节快乐~

公历3月7日是女生节。起源于20世纪90年代初&#xff0c;由山东大学发起&#xff0c;后发展于中国各高校&#xff0c;是一个关爱女生、展现高校女生风采的节日。女神节快乐祝我们18级青鸟1班的女孩儿们&#xff0c;女生节快乐&#xff01;愿快乐与你作陪&#xff0c;美丽将你跟随…

从 0 开始手写一个 Spring MVC 框架,向高手进阶

转载自 从 0 开始手写一个 Spring MVC 框架&#xff0c;向高手进阶 Spring框架对于Java后端程序员来说再熟悉不过了&#xff0c;以前只知道它用的反射实现的&#xff0c;但了解之后才知道有很多巧妙的设计在里面。如果不看Spring的源码&#xff0c;你将会失去一次和大师学习…

SpringBoot 使用Thymeleaf模板 没有提示

参考文档&#xff1a;IDEA使用Thymeleaf输入 th: 没有智能提示的全新解决办法&#xff08;写于2020年8月14日&#xff09; <!DOCTYPE html> <html lang"en" xmlns:th"http://www.w3.org/1999/xhtml"> <html lang"en" xmlns:th&q…

把Springboot项目部署到服务器上和结束运行

部署 nohup java -jar onlile-1.0.0-SNAPSHOT.jar &关闭 kill -9 22899 杀死 进程的pid &#xff0c;关闭程序。cat info.log 查看文件ps -ef | grep java 查看java 运行的几个进程 pid

《这里是中国》精美词句摘抄

金沙江自进入横断山区后也被山脉挟持。它与怒江、澜沧江平行南流&#xff0c;中间相隔两条山脉&#xff0c;最窄处的三江两山仅约70千米&#xff0c;这便是著名的“三江并流”。它可与白云握手&#xff0c;可与蓝天比高&#xff0c;可与秋叶同欢&#xff0c;可与白雪话冬。除此…

CoreCLR源码探索(六) NullReferenceException是如何发生的

NullReferenceException可能是.Net程序员遇到最多的例外了, 这个例外发生的如此频繁,以至于人们付出了巨大的努力来使用各种特性和约束试图防止它发生, 但时至今日它仍然让很多程序员头痛, 今天我将讲解这个令人头痛的例外是如何发生的. 可以导致NullReferenceException发生的…

java中随机生成26个字母组合的随机验证码

实现原理&#xff0c;通过随机生成1-52的随机数&#xff0c;然后从定义好的字母数字中取元素进行组合。 下面是代码&#xff1a; public static void login(){String [] yan {"a","b","c","d","e","f","g&q…