Node.js

开发环境搭配

数值类型

export default{}

// 数值类型

let num:number;

num=100

// num="刘亦菲"

num=3.14

console.log(num);

// 布尔类型

let flag:boolean;

flag=true

flag=false

// 字符串类型

let string:string

string="haha"

// string=17

let mag=`我的是${string}`

console.log(string);

console.log(mag);


 

//联合类型

let myBeauty:(number|boolean|string)[]

myBeauty=[12,true,"haha"]

// 任意类型

let test:any[]

test=["刘亦菲","刘亦菲1","刘亦菲2",18]

test=["刘亦菲","刘亦菲1","刘亦菲2",18,true]


 

元组 

export default{}

//元组类型

let tup1:[string,boolean,number]

tup1=["关晓彤",true,18]

// tup1=[18,"关晓彤",true]

// tup1=["关晓彤",true,18,"毛晓彤"]

console.log(tup1);

定义数据

export default{}

// 使用场景一

let temp:any;

temp="刘亦菲";temp=18;

temp=true;

// 使用场景二

// 改写现有代码时,任意值允许在编译时可选择地包含或移出类型检查

let x: any=4;

//x.IfitExists();

console.log(x.toFixed())

// 使用场景三

//定义存储各种类型数据的数组时let arr : any[]-[“刘亦菲",18,true];console.log( arr[0]);

// void类型

//某种程度上来说,void类型像是与any类型相反,它表示没有任何类型。//当一个函数没有返回值时,你通常会见到其返回值类型是void

//在Ts中只有null和lundefined可以赋值给void类型

function test():void{

console.log("往后余生,风雪是你,平淡是你,敲每一行代码想的都是你。");

console.log("你是css,我是DIV,就算我的布局再好,没了你也就没了色彩。");

}

test();

let test1:void;

// test1="刘亦菲";

// test1=18;

// test1=true;

//严格模式下会null报错

test1=null;

test1=undefined;

 null与undefined

export default{}

// TypeScript里,undefined和null两者各自有自己的类型分别叫做undefined和null

//和void相似,它们的本身的类型用处不是很大

 let x:undefined=undefined;

 let y:null=null;

 // x="刘亦菲";

 // x=18;

 // y="刘亦菲";

 // y=19;

let money : number=100;

money=null;

 money=undefined;

never与object

export default{}

// Never类型

// never类型表示的是那些永不存在的值的类型

//例如: never类型是那些总是会抛出异常或根本就不会有返回值

// 的函数表达式或箭头函数表达式的返回值类型变量也可能是

// never类型,当它们被永不为真的类型保护所约束时。


 

//返回never的函数必须存在无法达到的终点

function error(message : string): never{

throw new Error (message);

}

error("挂掉了~~~")

//推断的返回值类型为never

function fail(){

    return error( "GG了~~")

}

//返回never的函数必须存在无法达到的终点

function loop():never {

        while(true)

        {

        //...

        }

    }

//object类型

//表示一个对象

//定义了一个只能保存对象的变量

let goddess:object;

//goddess=true;

// goddess="刘亦菲";

// goddess=18;

goddess={name: "刘亦菲",age: 18};

console. log(goddess);

 

枚举 

export default{}

// enum Gender{

// Male,//男

// Female //女

// }

// let sex;

// sex=1;//男

// sex=2;//女

// let gender:Gender;

// gender=Gender.Male;

// gender=Gender.Female;


 

//注意点:TS中的枚举类型的取值,默认是从上至从0开始递增的

// 虽然默认是从0开始递增的,但是我们也可以手动的指定枚举的取值的值

//注意点:如果手动指定了前面枚举值的取值,那么后面枚举值的取值会根据前面的值来递增

// enum Gender{

// Male=1,//男

// Female//女

// }

// console.log(Gender.Male) //1

// console.log(Gender.Female) //2

// enum Gender{

//     Male=100,//男

//     Female=200//女

//     }

//     console.log(Gender.Male)//100

//     console.log(Gender.Female) //200


 

    // 注意点:如果手动指定了后面枚举值的取值,那么前面枚举值的取值不会受到影响

    // enum Gender{

    //     Male,//男

    //     Female=5//女

    // }

    //     console.log(Gender.Male)//0

    //     console.log(Gender.Female)//5

        // enum Gender{

        //     Male,Female

        //     }

        //     console.log(Gender.Male)//0

        //     console.log(Gender[0]);//Male

        // enum Gender{

        //     Male,Female

        //     }

        //     const getNum=()=>200

        //     let gender:Gender;

        //     gender=Gender.Female;

        //     gender=100;

        //     gender=getNum();

        //字符串枚举

        // enum Direction{

        //     up="Up",

        //     Down="Down"

        //     }

        //     console.log(Direction.up);

        //     console.log (Direction.Down);

        //     console.log(Direction[0]);

        //     console.log(Direction["up"]);

        // let x:Direction;

        // x=Direction.Down;

        // x="左";

        // const getDirection=()=>"右";

        // x=getDirection();

        //异构枚举

        // enum Gender{

        // Male=1,

        // Female="女"

        // }

        // console.log(Gender.Male);

        // console.log(Gender.Female);

        // console.log(Gender[1]);

        // console.log(Gender["女"]);

bigint 

export default {}

//bigint

let hundred1:bigint=BigInt(100);

let hundred2:bigint=100n;

console.log(hundred1);

console.log(hundred2);


 

//Symbol

let firstName=Symbol("name" );

let seciondName=Symbol("name");

//console.log(firstName)

// console.log( seciondName);

if(firstName===seciondName){

console.log("我们一样")}

else{

console.log("我们不一样")

}

变量声明与结构

export default{}

//数组解构

// let goddess=["王祖贤","关之琳"];

// let [firstName,secondName]=goddess;

// console.log(firstName);

// console.log(secondName);


 

// let goddess=["王祖贤","关之琳","张曼玉","利智"];

// let[third,...rest]=goddess;

// console.log(third);

// console.log(rest);

// let goddess=["王祖贤","关之琳","张曼玉","利智"];

// let [,forth,,fifth]=goddess;

// console.log(forth);

// console.log(fifth);


 

//对象解构

let beauty={

    uname : "杨超越",

    age: 20,

    sex: "女",

}

let {uname,age,sex} = beauty;

console.log(uname);

console.log(age);

console.log(sex);


 

 

类型断言

export default{}

// let str:any ="世界上最遥远的距离就是,你是if而我是else,似乎一直相伴但又永远相离";

// //方式一

// let len=(<string>str).length

// //方式二

// let num=(str as string).length

// console.log(len);

// console.log(num);

function typeAs(x:number|string){

    let len=(<string>x).length

    //let len=(x as string)

    console.log(len)

   

}

typeAs("世界上最遥远的距离就是,你是if而我是else,似乎一直相伴但又永远相离")

 

type别名

export default{}

// type beautys="斗战胜佛"|"齐天大圣"|"弼马温"|"孙行者"

// let one:beautys;

// // one=1;

// // one=true;

// // one="大师兄"

// one="斗战胜佛"

//第二种 定义别名

type myfun = (a:number,b:number) =>number;

//声明具体函数

let fun:myfun = (a:number,b:number) =>a + b;

let result=fun(10,20);

console.log(result);


 

type myGoddass={

    name: string,age: number,sex:boolean

}

let yifi:myGoddass={

    name: "刘亦菲",

    age:18,

    //sex:"男"//报错,不符合定义的类型

    sex:true

}

console.log(yifi.name);


 

 

接口的基本使用

export default {}

interface IFullName{

firstName:string

lastName : string

}

let goddassName : IFullName={

firstName:"刘",

lastName:"亦菲"

}

console.log(goddassName.firstName,goddassName.lastName);


 

function say({firstName,lastName} : IFullName) : void{

    console.log(`我的女神是${firstName}${ lastName}`)

    }

    say(goddassName);

    // say({name:"杨幂"})

 

可选属性与只读属性

export default {}

// 可选属性

interface IFullName{

firstName : string

lastName: string

age? : number

}

let goddass :IFullName={

firstName :"杨",

lastName:"超越",

// age:18

}


 

//只读属性

interface IInfo{

readonly name : string

readonly age: number

}

let info:IInfo={

name: "赵丽颖",

age:18

}

// info.name="范冰冰";

// info.age=19;

 

索引签名

export default {}

//解决参数可多可少的问题//

// 方案一:使用可选参数

interface IFullName{

firstName:string

lastName: string

age ? : number

}

let goddass1:IFullName={firstName:"刘",lastName:"亦菲",age:18}

let goddass2:IFullName={firstName:"刘",lastName:"亦菲"}


 

//方案二:使用变量

let info={firstName:"杨",lastName:"幂", age:18,song:"爱的供养"};

let goddass3:IFullName=info;

//方案三:使用类型断言

let godass4:IFullName=({firstName:"杨",lastName:"幂" ,age:18,song:"爱的供养" ,tv:"仙剑奇侠传三"}) as IFullName;


 

//索引签名

interface IBeauty{

    [ props:string]: string

    }

    let goddass5={name1:"刘亦菲", name2: "刘诗诗" , name3: "赵丽颖"};


 

    interface IAge{

        [ props:string] : number

        }

    let ages={age1: 10,age2: 20,age3: 30}



 

interface IMyFullName{

firstName : string

lastName: string

[props :string]: string

}

let goddass6:IMyFullName={firstName: "刘",lastName:"亦菲" ,sex:"女"}

let goddass7: IMyFullName={firstName: "刘", lastName: "亦菲",tv:"甄嬛传"}

 

函数接口

export default {}

//定义函数接口

interface IMakeMoney {

    (salary: number, reward: number): number

}

let sum: IMakeMoney = function (x: number, y: number): number {

    return x + y;

}

let res = sum(100, 1000);

console.log(res);

 

接口的继承

export default {}

//单继承

interface IPerson {

    age: number

}

interface IName extends IPerson {

    name: string

}

let person: IName = {

    name: "王思聪", age: 18

}

//多继承

interface IFatherMoney {

    m1: number

}

interface IMontherMoney {

    m2: number

}

interface ISonMoney extends IFatherMoney, IMontherMoney {

    s1: number

}

let sonMoney: ISonMoney = {

    m1: 1000,

    m2: 10000,

    s1: 1

}

console.log(`儿子共有${sonMoney.m1 + sonMoney.m2 + sonMoney.s1}`)


 

 

接口与类型别名

export default {}

//单继承

interface IPerson {

    age: number

}

interface IName extends IPerson {

    name: string

}

let person: IName = {

    name: "王思聪", age: 18

}

//多继承

interface IFatherMoney {

    m1: number

}

interface IMontherMoney {

    m2: number

}

interface ISonMoney extends IFatherMoney, IMontherMoney {

    s1: number

}

let sonMoney: ISonMoney = {

    m1: 1000,

    m2: 10000,

    s1: 1

}

console.log(`儿子共有${sonMoney.m1 + sonMoney.m2 + sonMoney.s1}`)


 

 

 把链接放到下方了,https://blog.csdn.net/lxbin/article/details/115313811 

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

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

相关文章

路晓彤的作业

<h1 style"text-align: center;">学生信息</h1><table align"center" border1;><tr><th>编号</th><th>学号</th><th>姓名</th><th>专业</th><th>班级</th><th>…

教你如何实现直播源代码的搜索功能

一、需求描述 直播源代码实现一个搜索框&#xff1a; 1、输入关键字&#xff0c;按键抬起后可以实现查询功能&#xff1b; 2、下拉列表展示搜索结果&#xff0c;搜索结果中关键字要用特殊颜色突出显示&#xff0c;默认选中搜索结果的第一项&#xff1b; 3、可以按上下键切换选中…

虚拟号码认证如何开通?

近年来&#xff0c;经常会接到外卖、房产中介、信用贷款等电话&#xff0c;让顾客不胜其扰。现在电话标记功能使用越来越普遍&#xff0c;可以大概了解电话“来意”&#xff0c;同时也会让误标记、恶意标记很方便。对于开展业务或办公司或企业的人&#xff0c;更加不能让自己的…

1分钟自动产出高质量PPT:ChatGPT + MidShow

你可能想知道如何在一分钟内自动产出高质量的PPT。有了ChatGPT和MindShow&#xff0c;这不再是一个难题。ChatGPT是一个基于OpenAI的强大的自然语言生成模型&#xff0c;它可以根据你的输入生成各种类型的文本&#xff0c;包括PPT提纲。MindShow是一个在线的PPT制作工具&#x…

PPT内置宏教程——放映时用控件切换动态图表

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 由于PPT中有多张类似但不太重要的图表&#xff0c;实际汇报时只挑重点说明&#xff0c;其他的基本略过。因此有必要用可选的方式将这…

客观评价华为的OS鸿蒙系统

论华为的OS鸿蒙系统 现在毫无疑问的是排名靠前的手机厂商都想有自己的操作系统 现在任何一家手机厂商都没有制作出属于自己的操作系统&#xff08;苹果除外&#xff09;&#xff0c;安卓阵营的任何一家公开市场的手机厂商他们都只造出了身体&#xff0c;核心的系统并没有造出&…

华为鸿蒙系统界面亮相,比Android操作更简单。

现在手机已经很普及了&#xff0c;手机系统主要有两大系统&#xff0c;一个是Android系统&#xff0c;一个是ios系统&#xff0c;但是华为让所有人看到了第三个系统&#xff0c;那就是鸿蒙系统。前不久谷歌宣布不与华为中断合作&#xff0c;那么华为接下来再想推出新手机&#…

重磅,鸿蒙系统底层彻底开源OpenHarmony!

程序员的成长之路 互联网/程序员/技术/资料共享 关注 阅读本文大概需要 5 分钟。 OpenHarmony是由开放原子开源基金会&#xff08;OpenAtom Foundation&#xff09;孵化及运营的开源项目&#xff0c;目标是面向全场景、全连接、全智能时代&#xff0c;基于开源的方式&#xff…

华为 鸿蒙 操作系统关键特性解读

关注、星标公众号&#xff0c;直达精彩内容 1、计算机为什么需要操作系统&#xff1f; 大部分人认为&#xff0c;操作系统本来就是与计算机&#xff08;IT设备&#xff09;一体的。究竟计算机为什么需要操作系统&#xff1f;可能我们并不会去特意想这个问题。 其实&#xff0c;…

HarmonyOS、鸿蒙系统初探、概述

概述 系统定位和技术架构技术特性分布式软总线分布式设备虚拟化分布式数据管理分布式任务调度一次开发&#xff0c;多端部署统一OS&#xff0c;弹性部署 系统安全正确的人正确的设备正确地使用数据 系统定位和技术架构 HarmonyOS是一款“面向未来”、面向全场景&#xff08;移动…

适合开发人员看的鸿蒙OS介绍~

“ 本文面向的是开发人员&#xff0c;主要想通过科普让大家了解一下鸿蒙开发。 到底什么是鸿蒙 OS 在官网上看到鸿蒙 OS 的简介是&#xff0c;分布式能力造就新硬件、新交互、新服务&#xff0c;打开焕然一新的全场景世界。以及发布会提及最多是他的万物互连&#xff0c;全场景…

鸿蒙系统深入课程1--鸿蒙相比Android的特点及战略(全网最明白的)

课程答疑和新课信息&#xff1a;QQ交流群&#xff1a;422901085进行课程讨论&#xff0c;加群主qq享受 优惠 FrameWork入门课视频链接&#xff1a;https://edu.csdn.net/course/detail/30298 FrameWork实战课1视频链接&#xff1a;https://edu.csdn.net/course/detail/30275 Fr…

鸿蒙之外,腾讯联手中兴发展开源操作系统,与谷歌安卓抗衡

腾讯发展的国产操作系统又有了新盟友&#xff0c;继酷派之后&#xff0c;中兴携它的新支点操作系统加入了腾讯推动的开源操作系统社区OpenCloudOS&#xff0c;这意味着腾讯开始与实力更强的中兴联手推动国产操作系统的发展。 腾讯推动的开源操作系统社区OpenCloudOS此前已有浪潮…

初识鸿蒙OS,你好,HarmonyOS!

为什么会有鸿蒙&#xff0c;出现鸿蒙的意义又是什么呢&#xff1f; 谈到为什么会有HarmonyOS鸿蒙系统&#xff0c;那我们就不得不说说&#xff0c;我们的移动通信技术的发展&#xff0c;现今我们大多数人都使用上5G网络了&#xff0c;回想一下从最初的1G网络到3G再到4G网络&…

谷歌对于鸿蒙的看法,谷歌评价华为鸿蒙系统,被华为鸿蒙系统震惊了

据新闻媒体指谷歌在开发人员交流会上公布了安卓12&#xff0c;发布的合作方名册中沒有华为&#xff0c;安卓12不会再兼容华为手机上&#xff0c;这代表着谷歌和华为已宣布破裂&#xff0c;华为务必让自身鸿蒙系统上线。 很多年前华为就声称自身已经产品研发手机操作系统&#x…

技巧分享:视频配音怎么制作?(内附3种配音教程)

随着科技的发展&#xff0c;越来越多新颖的娱乐项目出现在我们的眼前。而要说现在受人喜欢的一些娱乐项目&#xff0c;那不能不提短视频了。可以说&#xff0c;大部分小伙伴都会接触短视频&#xff0c;例如刷短视频、制作短视频、发布短视频等等。 现在很多小伙伴都喜欢自己制…

视频配音篇,如何使用百度翻译将文本转换为mp3语音?

打开百度翻译 百度翻译&#xff1a;https://fanyi.baidu.com/ 打开开发者工具 点击浏览器右上角按钮&#xff0c;选择更多工具&#xff0c;开发者工具 这里推荐使用Chrome浏览器&#xff0c;当然新版Edge也更换了Chrome内核&#xff0c;操作方式基本相同&#xff1b; 复制需要转…

新手如何选择 视频配音软件(文字转语音)

目录 1.先说结论&#xff1a;完全免费的 剪映配音 可以满足大部分需求 2.五款流行的配音软件优缺点 3.为什么剪映会免费 4.剪映配音&#xff1a;极简教程 4.1 下载、安装剪映&#xff1a; 4.2 新建项目&#xff0c;导入素材 4.3 添加文本 4.4 文本转语音 4.5 导出语音…

什么软件能在线支持视频配音文字转语音?

怎么自己给视频配音&#xff1f;这个问题相信很多小伙伴都有这种烦恼&#xff01;特别是接触短视频制作的小伙伴应该都知道&#xff0c;想制作一个比较能吸引人的视频vlog&#xff0c;不仅要单靠视频剪辑&#xff0c;还要学会.一帜。那你们知道怎么自己给视频配音&#xff1f;接…

利用CamtasiaStudio软件为英语视频自动添加英文字幕

一、背景说明 Camtasia Studio是美国TechSmith公司出品的屏幕录像和编辑的软件套装。软件提供了强大的屏幕录像(Camtasia Recorder)、视频的剪辑和编辑(Camtasi Studio)、视频菜单制作(Camtasia MenuMaker)、视频剧场(Camtasi Theater)和视频播放功能(Camtasia Playe…