typescript学习笔记
2021-08-31 15:23:38 20 举报
AI智能生成
登录查看完整内容
typescript 接口 泛型 类 面向对象 javasscript es5 es6 html
作者其他创作
大纲/内容
npm install -g typescript
tsc -version
查看安装版本
文件名 *.ts
tsc file.ts
手动编辑
tsc --init
创建配置文件
outDir:'./js'
修改tsconfig.json
vscode中,选择终端=》运行任务=》tsc:监视typescript
等同于命令:tsc -p e:\\study_new_tech\\typescript\\tsconfig.json --watch
自动编译
编译
安装
任意类型 any 声明为 any 的变量可以赋予任意类型的值。
数字类型 number 双精度 64 位浮点值。它可以用来表示整数和分数。let binaryLiteral: number = 0b1010; // 二进制let octalLiteral: number = 0o744; // 八进制let decLiteral: number = 6; // 十进制let hexLiteral: number = 0xf00d; // 十六进制
字符串类型 string 一个字符系列,使用单引号(')或双引号(\")来表示字符串类型。反引号(`)来定义多行文本和内嵌表达式。let name: string = \"Runoob\";let years: number = 5;let words: string = `您好,今年是 ${ name } 发布 ${ years + 1} 周年`;
布尔类型 boolean 表示逻辑值:true 和 false。let flag: boolean = true;
void void 用于标识方法返回值的类型,表示该方法没有返回值。function hello(): void { alert(\"Hello Runoob\");}
null null 表示对象值缺失。
undefined undefined 用于初始化变量为一个未定义的值
nevernever 是其它类型(包括 null 和 undefined)的子类型,代表从不会出现的值。
类型
function function_name():return_type { // 语句 return value; }
外框
函数返回值
如果有多个参数,可选参数必须配置在最后一个参数上
可选参数
默认参数
函数的最后一个命名参数 restOfName 以 ... 为前缀,它将成为一个由剩余参数组成的数组,索引值从0(包括)到 restOfName.length(不包括)。
function addNumbers(...nums:number[]) { var i; var sum:number = 0; for(i = 0;i<nums.length;i++) { sum = sum + nums[i]; } console.log(\"和为:\
剩余参数
带参数函数
函数重载
函数
class Car { // 字段 engine:string; // 构造函数 constructor(engine:string) { this.engine = engine } // 方法 disp():void { console.log(\"发动机为 : \"+this.engine) } }
定义示例
var obj = new Car(\"Engine 1\")
实例化
class Shape { Area:number constructor(a:number) { this.Area = a } } class Circle extends Shape { disp():void { console.log(\"圆的面积: \"+this.Area) } } var obj = new Circle(223); obj.disp()
class Man { protected name: string constructor(name: string) { this.name = name } run(): void { console.log(`${this.name} is running`) }}class SuperMan extends Man { fly(): void { console.log(`${this.name} can fly`) }}let man: Man = new SuperMan('kongxm')man.run()let superMan: SuperMan = new SuperMan('outman')superMan.run()superMan.fly()
继承
public(默认) : 公有,可以在任何地方被访问。protected : 受保护,可以被其自身以及其子类和父类访问。private : 私有,只能被其定义所在的类访问。
访问控制修饰符
class StaticMem { static num:number; static disp():void { console.log(\"num 值为 \"+ StaticMem.num) } } StaticMem.num = 12 // 初始化静态变量StaticMem.disp() // 调用静态方法
static 关键字
abstract class Animal { protected name: string constructor(name: string) { this.name = name } abstract eat(): void}class Dog extends Animal { eat(): void { console.log(`${this.name} eat meat.`) }}let doc: Animal = new Dog('wang cai')doc.eat()
抽象类(多态)
属性接口
函数接口
基本没什么卵用
可索引接口
interface Vehicle { name: string; run(tips: string): void}
类接口
class Programer implements Kid { play(): void { throw new Error(\"Method not implemented.\"); } eat(): void { throw new Error(\"Method not implemented.\"); }}
interface Kid extends Human { play(): void}
interface Human { eat(): void}
接口继承
接口
class TypeInfo<T> { print(str: T): void { if (typeof (str) === 'number') { console.log('this is type of number') } if (typeof (str) === 'string') { console.log('this is type of string') } }}let stringType: TypeInfo<String> = new TypeInfo()stringType.print('string')let numberType: TypeInfo<Number> = new TypeInfo()numberType.print(123)
泛型类
泛型接口
类作为泛型参数
泛型
类
export let url = 'http://www.baidu.com'export function doSomething() { console.log('do something else')}
定义
使用
方式一
同上
方式二
function doSomething() { console.log('do something else')}//有且只能定义一次export default doSomething
//这里就一个 export default,没有花括号import doSomething from \"./modules/_m3\"doSomething()
方式三
模块
命名空间
Central Topic
0 条评论
回复 删除
下一页