Boolean类型
布尔类型
let state: boolean = false;
复制代码
Number类型
数字类型
let num: number = 66;
复制代码
String类型
字符串
let str: string = 'hello world!';
复制代码
symbol类型
// const sym = Symbol();
复制代码
Array类型
数组类型
let arr1: number[] = [1, 2, 3, 4];
let arr2: Array<number> = [1, 2, 3, 4];
复制代码
Enum类型
枚举类型
enum List {
ONE,
TWO,
THREE,
FORE
}
enum List1 {
ONE,
TWO = "A",
THREE = 8,
FORE
}
enum List2 {
ONE = 'first',
TWO = 'second',
THREE = 'third',
FORE = 'fourth'
}
复制代码
Any类型
在 TypeScript 中,任何类型都可以被归为 any 类型。这让 any 类型成为了类型系统的顶级类型(也被
称作全局超级类型)。
let sure: any = 'sure';
sure = 666;
sure = false;
复制代码
UnKnown类型
就像所有类型都可以赋值给 any ,所有类型也都可以赋值给 unknown 。这使得 unknown 成为
TypeScript 类型系统的另⼀种顶级类型(另⼀种是 any )。
let sure1: unknown;
sure1 = 666;
sure1 = true;
// let value1: string = sure1; // Error
复制代码
Tuple(元组)类型
数组⼀般由同种类型的值组成,但有时我们需要在单个变量中存储不同类型的值,这时候我
们就可以使⽤元组。
let tupleArray: [string, number] = ['hello', 123]
复制代码
Void类型
某种程度上来说,void 类型像是与 any 类型相反,它表示没有任何类型。当⼀个函数没有返回值时,你
通常会⻅到其返回值类型是 void
function fn(): void {
console.log("TypeScript");
}
复制代码
Null 和 Undefined
TypeScript ⾥, undefined 和 null 两者有各⾃的类型分别为 undefined 和 null 。
let n: null = null;
let u: undefined = undefined;
复制代码
object,Object 和 {} 类型
1、object类型
TypeScript 2.2 引⼊的新类型,它⽤于表示⾮原始类型。
// node_modules/typescript/lib/lib.es5.d.ts
interface ObjectConstructor {
create(o: object | null): any;
// ...
}
const proto = {};
Object.create(proto); // OK
Object.create(null); // OK
// Object.create(undefined); // Error
// Object.create(1337); // Error
// Object.create(true); // Error
// Object.create("oops"); // Error
复制代码
2、Object类型
它是所有 Object 类的实例的类型,它由以下两个接⼝来定义:
- Object 接⼝定义了 Object.prototype 原型对象上的属性;
// node_modules/typescript/lib/lib.es5.d.ts
interface Object {
constructor: Function;
toString(): string;
toLocaleString(): string;
valueOf(): Object;
hasOwnProperty(v: PropertyKey): boolean;
isPrototypeOf(v: Object): boolean;
propertyIsEnumerable(v: PropertyKey): boolean;
}
复制代码
- ObjectConstructor 接⼝定义了 Object 类的属性。
// node_modules/typescript/lib/lib.es5.d.ts
interface ObjectConstructor {
/** Invocation via `new` */
new(value?: any): Object;
/** Invocation via function calls */
(value?: any): any;
readonly prototype: Object;
getPrototypeOf(o: any): any;
// ···
}
declare var Object: ObjectConstructor;
复制代码
Object 类的所有实例都继承了 Object 接⼝中的所有属性。
3、{} 类型
{} 类型描述了⼀个没有成员的对象。当你试图访问这样⼀个对象的任意属性时,TypeScript 会产⽣⼀个编译时错误。
// Type {}
const obj = {};
// Error: Property 'prop' does not exist on type '{}'.
obj.prop = "semlinker";
复制代码
但是,你仍然可以使⽤在 Object 类型上定义的所有属性和⽅法,这些属性和⽅法可通过 JavaScript 的原型链隐式地使⽤:
// Type {}
const obj2 = {};
// "[object Object]"
obj.toString();
复制代码
Never类型
never 类型表示的是那些永不存在的值的类型。
例如, never 类型是那些总是会抛出异常或根本就不会有返回值的函数表达式或箭头函数表达式的返回值类型。
// 返回never的函数必须存在⽆法达到的终点
function error(message: string): never {
throw new Error(message);
}
function infiniteLoop(): never {
while (true) { }
}
复制代码
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END