typescript 学习笔记

安装:

可以全局安装 typescript: npm install -g typescript

文件:

typescript 文件的后缀名为: .ts

编译:

通过: tsc 文件名  将 .ts 文件编译为 .js 文件

类型注解:

typescript 顾名思义,是具有类型的 javascript,我们都知道 javascript 是若类型语言,可以将一个 number 赋值给一个 string 变量。而 typescript 修改了这点,如果你对变量进行了类型设置,那么你将不能修改它的类型。也就是说,你不能将一个 number 赋值给一个 规定为 string 类型的变量。 如下所示:

接口 interface:

javascript 本身是没有接口的概念的,而这里的接口仅仅是对要传入某函数的内容进行类型检查(即类型检查器),在编译之后,接口内容就会全部被删掉。

1、基本使用,类型定义

let a:number = [1,2,3,'abc']; // error 数组内容必须是 number

  

  ===编译之后===>>   

2、可选属性 ? (即 option bags 模式,传入的参数对象只有部分赋值时使用)

interface Person {
    name?: string,
    age?: number
}
// 加粗内容表示:函数返回值类型
function curPerson(person:Person):{name:string,age:number}{ let str = "姓名:" + person.name + "年龄:" + person.age; return {name:person.name,age:person.age} } console.log(curPerson({name:'zhang'}))

结果输出:

3、只读属性 readonly

interface Person {
    readonly name: string,
    readonly age: number
}
let p1: Person = {
    name: 'zhang',
    age: 20
}
p1.name = 'xiao' //error:Conont assign to 'name' because it is a constant or a read-only property
//只读类型的数组
let a: ReadonlyArray<number> = [1, 2, 3]
a[0] = 2;  // error;
a.push(5); // error!
a.lenght = 100; //error
let b:number[] = [4,5,6]
b = a; //error; ReadonlyArray 没有了数组原本的方法,所以不能将一个 ReadonlyArray 赋值给一个普通的 Array
a = b; //true
b = a as number[]; //true; 使用类型断言,将一个 ReadonlyArray 赋值给一个普通的 Array

⚠️ readonly 和 const 都是设置不可改变值,区别是什么呢?

当设置属性值为不个改变时用 readonly,设置变量为不可改变时用 const。

 

类 class:

1 class Student {
2     fullName: string;
3     constructor(public firstName, public middleInitial, public lastName) {
4         this.fullName = firstName + " " + middleInitial + " " + lastName;
5     }
6 }
7 let user = new Student('Han',"bao","bao");
8 console.log('user', user);

结果输出:

 

posted @ 2018-06-07 14:37  z春眠不觉晓z  阅读(554)  评论(0编辑  收藏  举报