TypeScript 笔记02

73 阅读1分钟

1.接口

注释:接口的作用就是为这些类型命名和为你的代码或第三方代码定义契约。

interface LabelledValue {
  label: string;
}

function printLabel(labelledObj: LabelledValue) {
  console.log(labelledObj.label);
}

let myObj = {size: 10, label: "Size 10 Object"};
printLabel(myObj);
  • 可选属性 ?

注释:接口里的属性不全都是必需的。 有些是只在某些条件下存在,或者根本不存在。 常规的接口定义没啥区别,只是多加了?号

interface SquareConfig {
  color?: string;
  width?: number;
}
//好处:
1.可以对可能存在的属性进行预定义
2.可以捕获引用了不存在的属性时的错误
  • 只读属性 readonly

注释:通过赋值一个对象字面量来构造一个Point。 赋值后,xy再也不能被改变了

interface Point {
    readonly x: number;
    readonly y: number;
}
let p1: Point = { x: 10, y: 20 };
p1.x = 5; // error!

2.类

class Greeter {
    greeting: string;
    constructor(message: string) {
        this.greeting = message;
    }
    greet() {
        return "Hello, " + this.greeting;
    }
}

let greeter = new Greeter("world");
  • 继承
class Animal {
    move(distanceInMeters: number = 0) {
        console.log(`Animal moved ${distanceInMeters}m.`);
    }
}

class Dog extends Animal {
    bark() {
        console.log('Woof! Woof!');
    }
}

const dog = new Dog();
dog.bark();

3.函数

function add(x: number, y: number): number {
    return x + y;
}