变量声明
let
和 const
let
声明的变量可以修改,const
声明的变量不可修改。
let isDone: boolean = false;
isDone = true;
const num: number = 6;
数据类型
基本类型
let isDone: boolean = true;
let decLiteral: number = 6;
let hexLiteral: number = 0xf00d;
let binaryLiteral: number = 0b1010;
let octalLiteral: number = 0o744;
let name: string = "Bob";
name = 'Smith';
let sentence: string = `Hello, my name is ${name}.`;
let list: number[] = [1, 2, 3];
let list: Array<number> = [1, 2, 3];
let x: [string, number];
x = ["hello", 10];
enum Color {Red, Green, Blue}
let c: Color = Color.Green;
console.log(c);
let notSure: any = 4;
notSure = "maybe a string instead";
notSure = false;
function warnUser(): void {
console.log("This is my warning message");
}
let u: undefined = undefined;
let n: null = null;
类型推断
- TypeScript 会自动推断变量的类型,如果明确声明类型则不会推断。
let num = 10;
类型别名
type Name = string;
type NameResolver = () => string;
type NameOrResolver = Name | NameResolver;
接口
interface Person {
firstName: string;
lastName: string;
}
function greeter(person: Person) {
return "Hello, " + person.firstName + " " + person.lastName;
}
let user = { firstName: "Jane", lastName: "User" };
console.log(greeter(user));
枚举
enum Color {Red, Green, Blue}
let c: Color = Color.Green;
console.log(c);
数组
let list: number[] = [1, 2, 3];
let list: Array<number> = [1, 2, 3];
函数
function add(x: number, y: number): number {
return x + y;
}
let myAdd: (x: number, y: number) => number = function(x: number, y: number): number { return x + y; };
console.log(add(2, 3));
类型断言
let someValue: any = "this is a string";
let strLength: number = (<string>someValue).length;
let strLength: number = (someValue as string).length;
类
class Greeter {
greeting: string;
constructor(message: string) {
this.greeting = message;
}
greet() {
return "Hello, " + this.greeting;
}
}
let greeter = new Greeter("world");
console.log(greeter.greet());
模块
export function add(x: number, y: number): number {
return x + y;
}
import { add } from './math';
console.log(add(1, 2));
类型守卫
function isString(x: any): x is string {
return typeof x === "string";
}
function example(x: number | string) {
if (isString(x)) {
console.log(x.toUpperCase());
} else {
console.log(x.toFixed(2));
}
}
example("hello");
example(3.14159);