美文网首页
TypeScript学习记录

TypeScript学习记录

作者: littleyu | 来源:发表于2018-11-30 16:54 被阅读9次

接口-interface

interface Person {
  firstName: string;
  lastNmae: string;
}

function greeter(person: Person) {
  console.log('Hello'+person.firstName+person.lastName)
}

let user = {firstName: 'zhang', lastName: 'super'};
greeter(user);

person: Person参数必须符合interface的定义才会被允许。

Public

为了简化重复申明赋值的属性

class Student {
  fullName: string;
  firstName: string;
  lastName: string;
  constructor(firstName, lastName) {
    this.firstName = firstName;
    this.lastName = lastName;
  } 
}
// 因为使用public以上可以等价于以下
class Student {
  fullName: string;
  constructor(pub firstName, public  lastName) {
    this.fullName: firstName + lastName
  } 
}

类-class

class Student {
  fullName: string;
  constructor(public firstName, public  lastName) {
    this.fullName: firstName + lastName
  } 
}
interface Person {
  firstName: string;
  lastName: string;
}
function greeter(person: Person) {
  console.log('Hello'+person.firstName+person.lastName);
}
let user = new Student('zhang', 'super');
greeter(user);

重载

实现参数多个类型和函数返回值

function add(a: string, b: string): string;
function add(a: number, b: number): number;
function add(a: any, b: any): any{
  return a + b
}

数组

规定了a为number组成的数组

function select(a: number[]): number{ // 或者function select(a: Array<string>): number{
  return a[0]
}

元祖

表示已知一个元素的数量和类型的数组

let x:[string, number];
x = ['我是string', 1]; // ok
x = [1, '我是string']; // error
x = [1, '我是string', '我还是一个string']; // error

枚举

定义一些带名字的常量

enum Gender{
  male,
  female
}
interface Person {
  sex: Genter;
}
function show( a: Person){
  console.log('我是:'+a.sex);
}
show({sex: Gender.male}) // ok
show({sex: Gender.female}) // ok
show({sex: Gender.hahamale}) // error
show({sex: Gender.11122}) // error

持续更新ing

相关文章

网友评论

      本文标题:TypeScript学习记录

      本文链接:https://www.haomeiwen.com/subject/nzggzftx.html