惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

罗磊的独立博客
I
InfoQ
雷峰网
雷峰网
Hugging Face - Blog
Hugging Face - Blog
IT之家
IT之家
云风的 BLOG
云风的 BLOG
有赞技术团队
有赞技术团队
Martin Fowler
Martin Fowler
MyScale Blog
MyScale Blog
The GitHub Blog
The GitHub Blog
博客园_首页
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
G
Google Developers Blog
WordPress大学
WordPress大学
B
Blog
人人都是产品经理
人人都是产品经理
小众软件
小众软件
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
量子位
Apple Machine Learning Research
Apple Machine Learning Research
N
Netflix TechBlog - Medium
Last Week in AI
Last Week in AI
博客园 - 聂微东
Jina AI
Jina AI

博客园 - 余昭(Ray)

AI 编程实战营毕业总结 解决github访问速度慢的问题 使用交互界面配置centos网络(NMTUI) 银河麒麟安装达梦数据库失败Unable to load native library: libnsl.so.1: cannot open shared object file: No such file or directory Net5中使用Swagger 编译Windows 版本的Redis 6.x NetCore使用Nlog记录日志 QuickStart系列:Docker部署PostgreSQL 搭建docker本地仓库 NT Kernel & System (ntoskrnl)占用80端口 简单的验证码识别 使用SSH配置git服务器免密提交 QuickStart系列:docker部署之Gitlab本地代码仓库 https环境搭建(本地搭建) docker搭建elk 使用本机IP调试web项目 本地调试微信(内网穿透) ElasticsearchCRUD翻译系列之(一): ElasticsearchCRUD 介绍 阿里云Oss对象存储 asp.netmvc部署到linux(centos)
TypeScript入门
余昭(Ray) · 2021-01-25 · via 博客园 - 余昭(Ray)

TypeScript 是 JavaScript 的一个超集,支持 ECMAScript 6 标准。

  • 类型批注和编译时类型检查
  • 类型推断
  • 类型擦除
  • 接口
  • 枚举
  • Mixin
  • 泛型编程
  • 名字空间
  • 元组
  • Await

解决了什么问题

1. 类型问题。

2. 参数个数和方法名不匹配的问题。。

3.增强代码可读性。

内置的数据类型

数字类型 number
字符串类型 string
布尔类型 boolean
数组类型
元组类型
枚举类型

联合类型 , 例如 number|string , number[]|string[]等。

安装

先下载安装Nodejs

然后安装TypeScript。 全局安装如下

npm install -g typescript

接口使用举例, 以student.ts为例


interface IStudent{
    name:string,
    age:number,
    sayHello:()=> string
}

var zhangSan:IStudent = {
    name:"张三",
    age:18,
    sayHello:()=> { return "我是"+ zhangSan.name+",今年"+ zhangSan.age; }
}

console.log(zhangSan.name);
console.log(zhangSan.age);
console.log(zhangSan.sayHello());

View Code


使用nodejs编译代码

得到student.js文件。

使用nodejs运行js文件

module的使用

接口文件

ITeacher.ts

export interface ITeacher{
    say();
}

View Code

实例文件

ChineseTeacher.ts

import teacher = require("./ITeacher")
export class ChineseTeacher implements teacher.ITeacher{
    public say(){
        console.log("我讲中文。。。");
    }
}

View Code

EnglishTeacher.ts

import teacher = require("./ITeacher")
export class EnglishTeacher implements teacher.ITeacher{
    public say(){
        console.log("I say English...");
    }
}

View Code

执行文件

TestTearch.ts

import teacher = require("./ITeacher");
import chineseTeacher = require("./ChineseTeacher");
import englishTeacher = require("./EnglishTeacher");

function showAllTeacher(teacherSay: teacher.ITeacher){
    teacherSay.say();
}

showAllTeacher(new englishTeacher.EnglishTeacher());
showAllTeacher(new chineseTeacher.ChineseTeacher());

View Code

使用命令 tsc TestTearch.ts 和node TestTearch.js

泛型

function identity<T>(arg: T): T {
    return arg;
}

let output1 = identity<string>("myString");
let output2 = identity<number>(10086);
let output3 = identity(12580);

View Code

声明, 使用declare关键字

posted on 2021-01-25 21:22  余昭(Ray)  阅读(162)  评论()    收藏  举报