TS 的官方网站
TS基础数据类型
布尔值
代码语言:javascript复制let isDone: boolean = false;
数字
代码语言:javascript复制let decLiteral: number = 6;
let hexLiteral: number = 0xf00d;
let binaryLiteral: number = 0b1010;
let octalLiteral: number = 0o744;
字符串
代码语言:javascript复制let name: string = "bob";
name = "smith";
let name: string = `Gene`;
let age: number = 37;
let sentence: string = `Hello, my name is ${ name }.
I'll be ${ age 1 } years old next month.`;
数组
代码语言:javascript复制let list: number[] = [1, 2, 3];
元组
代码语言:javascript复制// Declare a tuple type
let x: [string, number];
// Initialize it
x = ['hello', 10]; // OK
// Initialize it incorrectly
x = [10, 'hello']; // Error
枚举
代码语言:javascript复制enum Color {Red, Green, Blue}
let c: Color = Color.Green;
Any
代码语言:javascript复制let notSure: any = 4
notSure = "maybe a string instead";
notSure = false;
Void 函数没有返回值时使用void修饰
代码语言:javascript复制function warnUser(): void {
console.log("This is my warning message")
}
Never never
类型表示的是那些永不存在的值的类型。
Object object
表示非原始类型,也就是除number
,string
,boolean
,symbol
,null
或undefined
之外的类型。
declare function create(o: object | null): void;
create({ prop: 0 }); // OK
create(null); // OK
create(42); // Error
create("string"); // Error
create(false); // Error
create(undefined); // Error
接口
TypeScript的核心原则之一是对值所具有的结构进行类型检查。 它有时被称做“鸭式辨型法”或“结构性子类型化”。 在TypeScript里,接口的作用就是为这些类型命名和为你的代码或第三方代码定义契约。
可选属性
代码语言:javascript复制interface SquareConfig {
color?: string;
width?: number;
}
只读属性
些对象属性只能在对象刚刚创建的时候修改其值。 你可以在属性名前用 readonly
来指定只读属性:
interface Point {
readonly x: number;
readonly y: number;
}
额外的属性检查
代码语言:javascript复制interface SquareConfig {
color?: string,
width?: number,
[propName: string]: any
}
函数类型
可索引的类型
继承接口
混合类型
接口继承类