- number 数字
- string 字符串
- boolean 布尔
- object 对象
- Array 数组
- any 任意类型
- unknown 未知类型
- Tuple 元祖
- enum 枚举
- never
- null 和 undefined
- void 函数无返回值
let someValue: any = "this is a string";
let strLength: number = (<string>someValue).length;
function identity<T>(arg: T): T {
return arg;
}
function add(x: number, y?: number = 0): number {
return x + y;
}
let myAdd: (x: number, y?: number) => number =
function(x: number, y?: number = 0): number { return x + y; };
class Animal {
age: number;
name: string;
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
bark() {
console.log('动物叫');
}
}
abstract class Animal {
name: string;
age: number;
constructor(name: string, age:number) {
this.name = name;
this.age = age;
}
abstract bark(): void; // 抽象方法
}
class Cat extends Animal{
constructor(name: string, age: number) {
super(name, age);
}
bark() {
console.log('喵喵喵');
}
}
接口的方法只能是抽象方法
interface Animal {
name: string;
age: number;
abstract bark(): void; // 抽象方法
}
接口之间可以继承且一个接口可以继承多个接口
class Dog implements Animal{
name: string;
age: number;
color: string;
constructor(name: string, age: number, color: string) {
this.name = name;
this.age = age;
this.color = color;
}
bark() {
console.log('汪汪汪');
}
}
public, private, protected, readonly