前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >TypeScript入坑

TypeScript入坑

原创
作者头像
mySoul
发布于 2018-10-18 13:46:03
发布于 2018-10-18 13:46:03
5730
举报
文章被收录于专栏:mySoulmySoul

TypeScript 入坑

安装

使用npm安装

使用全局方式安装

代码语言:txt
AI代码解释
复制
npm install -g typescript

编辑器

安装插件 https://github.com/Microsoft/TypeScript-Sublime-Plugin

https://packagecontrol.io/packages/TypeScript

编译使用node.js进行编译

hello world

编写ts文件

代码语言:txt
AI代码解释
复制
function greeter(person) {
	return "Hello world!" + person;
}
let user = "hello world";

document.body.innerHTML = greeter(user);

编译

代码语言:txt
AI代码解释
复制
PS C:\Users\mingm\Desktop\ts> tsc greeter.ts
Active code page: 65001
PS C:\Users\mingm\Desktop\ts>

上方为编译好的js文件

代码语言:txt
AI代码解释
复制
function greeter(person) {
    return "Hello world!" + person;
}
var user = "hello world";
document.body.innerHTML = greeter(user);

类型注解

代码语言:txt
AI代码解释
复制
function greeter(person: string){	// 将其注解为string类型
	return "hello," + person;
}

let user = [0, 1, 2];
document.body.innerHTML = greeter(user);

将其注解为string类型

变量声明

由于js没有块级作用域,使用var会出现以下问题

代码语言:txt
AI代码解释
复制
for(var i = 1: i <= 10; i++) {
}
console.log(i);

仍然可以访问i为10,由于js的变量作用注册在作用域链上造成的结果,解决方案,使用闭包

let

let属于块级作用域

const

赋值以后不能再改变

解构赋值

代码语言:txt
AI代码解释
复制
let input = [1,2];
let input1 = [2,3];
// 解构赋值
[input[0], input[2]] = [2,3]
// 同样的也可以创建剩余变量
let[first,...rest] = [1,2,3,4,5];
// first 为 1, rest 为[2,3,4,5]

联合类型

代码语言:txt
AI代码解释
复制
let myFavoriteNumber: string | number
myFavoriteNumber = "seven";
myFavoriteNumber = 7;
代码语言:txt
AI代码解释
复制
var myFavoriteNumber;
myFavoriteNumber = "seven";
myFavoriteNumber = 7;

访问联合类型的属性和方法

只能访问共有的属性和方法

代码语言:txt
AI代码解释
复制
function getString(something:string | number):string {
	return something.toString();
}
代码语言:txt
AI代码解释
复制
function getString(something) {
    return something.toString();
}

接口

对类的一部分行为进行抽象(即方法)抽象出接口。

防盗门和车都有报警这个方法,将报警这个方法抽象出来,成为这两个的接口

接口建议名称前加上I

代码语言:txt
AI代码解释
复制
// 定义一个接口,接口的类型名称为person
interface Iperson{
	name: string;
	age: number;
}

// 使用接口
function greeter(person: Iperson):string {
	return "hello world" + person.name + person.age;
}

// 传入对象
let user = { name: "hello world", age: 23 };
// 调用
document.body.innerHTML = greeter(user);
代码语言:txt
AI代码解释
复制
// 使用接口
function greeter(person) {
    return "hello world" + person.name + person.age;
}
// 传入对象
var user = { name: "hello world", age: 23 };
// 调用
document.body.innerHTML = greeter(user);

可选属性

代码语言:txt
AI代码解释
复制
// 定义一个接口,接口的类型名称为person
interface Iperson{
	name: string;
	age?: number;
}

// 使用接口
function greeter(person: Iperson):string {
	return "hello world" + person.name + person.age;
}

// 传入对象
let user = { name: "hello world"};
// 调用
document.body.innerHTML = greeter(user);
代码语言:txt
AI代码解释
复制
// 使用接口
function greeter(person) {
    return "hello world" + person.name + person.age;
}
// 传入对象
var user = { name: "hello world" };
// 调用
document.body.innerHTML = greeter(user);

接口传入任意值

代码语言:txt
AI代码解释
复制
// 定义一个接口,接口的类型名称为person
interface Iperson{
	name: string;
	age?: number;
	[propName: string]: any;	// 任意数据取string类型的值
}

// 使用接口
function greeter(person: Iperson):string {
	return "hello world" + person.name + person.age + person.ming;
}

// 传入对象
let user = { name: "hello world", ming:"hello world"};
// 调用
document.body.innerHTML = greeter(user);

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
TypeScript学习(一)
用户1696846
2023/08/25
1380
typescript快速入门
官方文档:https://www.tslang.cn/docs/handbook/typescript-in-5-minutes.html
阿超
2022/08/21
3200
typescript快速入门
TypeScript学习笔记(一)—— TypeScript入门
TypeScript是一种由微软开发的自由和开源的编程语言,它是JavaScript的一个超集,扩展了JavaScript的语法,而且本质上向这个语言添加了可选的静态类型和基于类的面向对象编程。安德斯·海尔斯伯格,C#的首席架构师,工作于TypeScript的开发。
张果
2022/10/04
1.3K0
TypeScript学习笔记(一)—— TypeScript入门
Typescript基础语法
typescript是一个js的超集,个人理解为包装了面向对象编程逻辑的语法糖,所以一般使用typescript的语言来编写代码,然后再使用typescript编译为原生js,这样就可以作为普通js脚本运行了。typescript语法很多地方与java类似,作为java程序员学起来不会很吃力。
歪歪梯
2020/06/19
1.6K0
typescript基础篇(1):helloworld
TypeScript是一种由微软开发的自由和开源的编程语言。作为JavaScript的一个超集,添加了可选的静态类型和基于类的面向对象编程。
一粒小麦
2020/08/07
8200
typescript基础篇(1):helloworld
TypeScript学习(一)
function greeter(person) { return "Hello, " + person; } let user = "Jane User"; document.body.innerHTML = greeter(user);
用户1696846
2021/04/02
2620
【初学者笔记】🐯年要掌握 Typescript
JavaScript 是弱类型语言, 很多错误只有在运行时才会被发现,而 TypeScript 提供了一套静态检测机制, 可以帮助我们在编译时就发现错误。
一尾流莺
2022/12/10
1.3K0
【初学者笔记】🐯年要掌握 Typescript
​ArkTS 语言简介
ArkTS 是鸿蒙生态的应用开发语言。它在保持 TypeScript(简称 TS)基本语法风格的基础上,进一步通过规范强化静态检查和分析,使得在程序运行之前的开发期能检测更多错误,提升代码健壮性,并实现更好的运行性能。同时,提供了声明式 UI 范式、状态管理支持等相应的能力,让开发者可以以更简洁、更自然的方式开发高性能应用。
徐建国
2024/11/25
2640
​ArkTS 语言简介
typescript里一些有趣的点
在原生的JS里,null和undefined经常会导致BUG的产生, 在ts里,你又想用null,又担心出错的时候 你可以考虑用联合类型,当某值可能为 number或null,你可以声明它的类型为number | null
liulun
2019/07/02
3990
❤ 就这?TypeScript其实并不难!(建议收藏)❤
🎈 作者:不吃西红柿 🎈 简介:CSDN博客专家🏆、蓝桥签约作者、Python领域优质创作者、信息技术智库公众号创建者✌。技术交流、面试刷题尽管关注咨询我。 ---- 目录 一、什么是 TypeScript? 二、TS和JS的对比 三、TypeScript小课堂 01 TypeScript开发环境的构建 02 开启我们的helloWorld.ts 03 TS变量类型那些事 04 Ts函数 05 函数的三种定义方式 06 变量的作用域,函数划分 07 引用类型的数组 08 引用类型的字符串 09 引用类型的日
不吃西红柿
2022/07/29
1.7K0
❤ 就这?TypeScript其实并不难!(建议收藏)❤
强烈推荐:2020年15道优秀的TypeScript练习题 (上集)
TypeScript是目前不得不学的内容 Ts的东西其实非常非常的多,上到tsconfig的配置,下到写法,内容。 Ts正在疯狂的迭代,进入4.0版本即将,里面的内容非常非常的多,可以说,入门很简单,但是要写精通,真的还是要花很多功夫。 本文一共分上、下集,欢迎你关注我的公众号:【前端巅峰】,前端、后端、源码、架构、算法、面试都有,更有理财,心理学、开源项目等日常分享。 正式开始 第一题,基本interface使用考察,定义一个item接口,符合使用 interface item { name: str
Peter谭金杰
2020/07/21
1.1K0
TypeScript 期中考试现在开始!
相信这段时间来,对 TypeScript 感兴趣的小伙伴们已经把这个神器给系统的学习了一遍了吧。如果计划开始学习但是还没有开始,或者没有找到资料的同学,可以看下我在之前文章中 前端进阶指南 找一下 TypeScript 部分的教程,自行学习。
ssh_晨曦时梦见兮
2020/06/09
6840
TypeScript 期中考试现在开始!
typescript-exercises(五)
此处主要考察Partial<Type>的使用以及Omit<Type, Keys>的使用
阿超
2024/11/01
640
TypeScript学习笔记(二)—— TypeScript基础
JavaScript 的类型分为两种:原始数据类型(Primitive data types)和对象类型(Object types)。
张果
2022/10/04
5.2K0
TypeScript学习笔记(二)—— TypeScript基础
typescript-exercises(四)
阿超
2024/10/31
1150
TypeScript 练习题
TypeScript 的学习资料非常多,其中也不乏很多优秀的文章和教程。但是目前为止没有一个我特别满意的。原因有:
lucifer210
2020/09/30
1.3K0
TypeScript 练习题
TypeScript入门教程(一)
本文是TypeScript的入门文章,将分别从下面四点对TypeScript进行介绍:
前端林子
2018/10/14
5.7K0
TypeScript入门教程(一)
声明合并_TypeScript笔记16
TypeScript 里,一条声明可能会创建命名空间、类型或值,比如声明 Class 时会同时创建类型和值:
ayqy贾杰
2019/06/12
1.2K0
TypeScript 安利指南
据了解,目前有相当一部分同学不想去学习ts,毕竟没(xue)时(bu)间(dong)。很不幸两个月前我也是其中的一员。在看到尤大大都用ts写vue3了,蠢蠢欲动的我小心翼翼的踏入了这个深坑。在经历了长达一天的摸爬滚打之后,领悟到了真谛。
WecTeam
2020/01/14
9670
TypeScript 安利指南
一篇朴实的文章带捋完TypeScript基础,方法是正反对比!
最近在抽出点业余时间学习TypeScript,虽然平时也挺忙的,但是还是想分配些时间出来。掘金这篇文章不错,于是分享给大家。
coder_koala
2019/11/09
1.2K0
相关推荐
TypeScript学习(一)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档